AWSTemplateFormatVersion: "2010-09-09" Description: "AWS CloudFormation Sample Template WordPress_Single_Instance: WordPress is web software you can use to create a beautiful website or blog. This template installs WordPress with a local MySQL database for storage. It demonstrates using the AWS CloudFormation bootstrap scripts to deploy WordPress. **WARNING** This template creates an Amazon EC2 instance. You will be billed for the AWS resources used if you create a stack from this template." Parameters: DBName: Description: The WordPress database name Default: "{{resolve:ssm:dbName:1}}" Type: String DBPassword: Description: The WordPress database admin account password Default: "{{resolve:secretsmanager:dbPassword}}" Type: String DBRootPassword: Description: MySQL root password Default: "{{resolve:secretsmanager:dbRootPassword}}" Type: String DBUser: Description: The WordPress database admin account username Default: "{{resolve:ssm:dbUser:1}}" Type: String InstanceType: Default: t3.small Description: WebServer EC2 instance type Type: String LatestAmiId: Type: "AWS::SSM::Parameter::Value" Default: "/aws/service/ami-amazon-linux-latest/amzn-ami-hvm-x86_64-gp2" Resources: WebServer: Type: AWS::EC2::Instance CreationPolicy: ResourceSignal: Timeout: PT15M Metadata: AWS::CloudFormation::Init: configSets: wordpress_install: - install_cfn - install_wordpress - configure_wordpress configure_wordpress: commands: 01_set_mysql_root_password: command: !Sub | mysqladmin -u root password '${DBRootPassword}' test: !Sub | $(mysql ${DBName} -u root --password='${DBRootPassword}' >/dev/null 2>&1 /dev/null 2>&1