- Notifications
You must be signed in to change notification settings - Fork43
License
MikletNg/aws-serverless-wordpress
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Please read the blog post for introduction and explanation.Dev.to: Best Practices for Running WordPress on AWS using CDK
- W3 Total Cache
- WP Offload Media Lite
- ElasticPress
- Multiple Domain
- HumanMade - AWS-XRay (Working on making it work...)
Please make sure you have/are
- Using bash
- Node.js installed
- NPM and Yarn installed
- Installed and running Docker
- Installed and configured AWS CLI
- Installed the latest version of AWS CDK CLI
Please be notice, this stack only can deploy into us-east-10. You should have a public hosted zone in Route 53
- Initialize the CDK project, run
make init
- Deploy the CDK Toolkit stack on to the target region, run
cdk bootstrap aws://AWS_ACCOUNT_ID/AWS_REGION --profile AWS_PROFILE_NAME
- Copy the
config.sample.toml
and rename toconfig.toml
- Run
make easy-rsa-init gen-cert import-cert
to generate the certificate for the Client VPN - Modify the configuration in
config.toml
[environment]account ="YOUR_AWS_ACCOUNT_ID"# Your AWS account ID[admin]allowIpAddresses = ["0.0.0.0/0"]#Your home/office public IPv4 address, if using a specific IP add /32 like 24.222.174.192/32#Both certificate ARN should create and get from the previous stepsserverCertificateArn ="arn:aws:acm:us-east-1:YOUR_AWS_ACCOUNT_ID:certificate/xxxxxxxxxxxxxxxxxxxxxxxx"clientCertificateArn ="arn:aws:acm:us-east-1:YOUR_AWS_ACCOUNT_ID:certificate/yyyyyyyyyyyyyyyyyyyyyyyy"[database]username ="wordpress"#Database usernamedefaultDatabaseName ="wordpress"#Default database name[domain]domainName ="example.com"#Your root domain name, useually is the domain name of the created public hosted zone in Route 53hostname ="blog.example.com"#Your desire hostname for the WordPressalternativeHostname = ["*.blog.example.com"][contact]email = ["hello@blog.example.com"]#Email address for notify any in-compliance event in AWS Config
- Run
make deploy profile=YOUR_AWS_PROFILE_NAME
- After the CloudFormation stack deployed, open the Session Manager in System Manager, and open a session to the created bastion host. Then run the following command. (The version of WordPress plugin may NOT be latest)
sudo su -cd /mnt/efs/wp-content/plugins&&\curl -O https://downloads.wordpress.org/plugin/w3-total-cache.0.15.1.zip&&\curl -O https://downloads.wordpress.org/plugin/amazon-s3-and-cloudfront.2.4.4.zip&&\curl -O https://downloads.wordpress.org/plugin/elasticpress.zip&&\curl -O https://downloads.wordpress.org/plugin/multiple-domain.zip&&\curl https://codeload.github.com/humanmade/aws-xray/zip/1.2.12 -o humanmade-aws-xray-1.2.12.zip&&\unzip'*.zip'&&\rm -rf*.zip
- After the installation, go to the webpage and setup the database connection and plugin configuration. For the hostname of Memcached or MySQL, please check the output in CloudFormation stack.
- For
Mutiple Domain
plugin, please enterblog.example.com
andadmin.blog.example.com
these 2 hostname.
https://aws.amazon.com/tw/blogs/devops/build-a-continuous-delivery-pipeline-for-your-container-images-with-amazon-ecr-as-source/https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/blue-green.html
https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-ecs-ecr-codedeploy.html#tutorials-ecs-ecr-codedeploy-clusterhttps://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.htmlhttps://stackoverflow.com/questions/56535632/how-do-i-link-2-containers-running-in-a-aws-ecs-task
https://github.com/Monogramm/docker-wordpresshttps://github.com/fjudith/docker-wordpresshttps://github.com/humanmade/aws-xray
https://pecl.php.net/package/memcachedhttps://pecl.php.net/package/APCu
https://stackoverflow.com/questions/54772120/docker-links-with-awsvpc-network-mode
https://www.mgt-commerce.com/blog/aws-varnish-auto-scaling-magento/
https://downloads.wordpress.org/plugin/w3-total-cache.0.15.1.ziphttps://downloads.wordpress.org/plugin/wp-ses.1.4.3.ziphttps://downloads.wordpress.org/plugin/amazon-s3-and-cloudfront.2.4.4.ziphttps://downloads.wordpress.org/plugin/elasticpress.zip
About
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.