Overview
WordPress on AWS by FOSSonCloud is an open-source AWS CloudFormation template that offers an easy-to-install AWS infrastructure solution for quickly deploying WordPress, using both AWS and WordPress best practices.
Automatically configured to support auto-scaling through AWS Auto Scaling Groups, this solution leverages an EFS file system to share user generated content and application files (wp-content) between application servers, and SES for sending outbound email. An optional NLB-fronted SFTP endpoint is available for direct file transfer onto the EFS volume.
The template ensures multi-level security by incorporating AWS IAM for federated access to resources with least privilege, AWS managed keys, and Secrets Manager to manage credentials for encryption of data at rest and in transit.
We support multiple availability zones using an RDS Aurora MySQL cluster and EC2 Auto Scaling Groups.
Highlights
- Production-ready WordPress 6.9.4 site on Apache + PHP 8.1
- Integrated with AWS Certificate Manager for HTTPS support
- Logs in CloudWatch Logs, remote access via Session Manager, optional SFTP via NLB
Details
Introducing multi-product solutions
You can now purchase comprehensive solutions tailored to use cases and industries.
Features and programs
Financing for AWS Marketplace purchases
Pricing
Dimension | Cost/hour |
|---|---|
t2.micro | $0.02 |
t3.micro | $0.02 |
r5d.2xlarge | $0.02 |
m5d.8xlarge | $0.02 |
m5d.large | $0.02 |
m5.xlarge | $0.02 |
m5.12xlarge | $0.02 |
r5.2xlarge | $0.02 |
r5d.4xlarge | $0.02 |
c5.metal | $0.02 |
Vendor refund policy
We do not currently support refunds, but you can cancel at any time.
How can we make this page better?
Legal
Vendor terms and conditions
Content disclaimer
Delivery details
CloudFormation Template v3.0.0
WordPress on AWS by FOSSonCloud deploys a production-ready WordPress site using AWS best practices.
WordPress 6.9.4 is baked into the custom AMI. On first boot, the codebase is copied to EFS and Apache serves from /var/www/wordpress (a symlink into EFS). The WordPress install wizard runs once; database credentials are pre-configured. Customer code changes happen via the WordPress admin UI, via SSM Session Manager onto an instance, or — with EnableSftp=true — via the chrooted wordpress user over the optional NLB-fronted SFTP endpoint.
WHAT'S DEPLOYED
- VPC with public and private subnets (or bring your own VPC)
- Application Load Balancer with ACM certificate for HTTPS
- Auto Scaling Group running Apache 2.4 + PHP 8.1 + WordPress 6.9.4 (Ubuntu 22.04)
- Aurora MySQL 8.0 cluster (multi-AZ)
- EFS for shared wp-content (uploads, themes, plugins) — mounted across all instances
- SES domain identity + msmtp on the instance for outbound email (password reset, notifications)
- Optional NLB-fronted SFTP endpoint with a chrooted wordpress user (toggle via EnableSftp)
- Route53 DNS record
- CloudWatch Logs integration (system + Apache access/error logs)
- AWS Secrets Manager for database credentials and WordPress salts
- IAM roles with least-privilege permissions
REQUIREMENTS
- Route 53 hosted zone for DNS
- ACM certificate for HTTPS
CloudFormation Template (CFT)
AWS CloudFormation templates are JSON or YAML-formatted text files that simplify provisioning and management on AWS. The templates describe the service or application architecture you want to deploy, and AWS CloudFormation uses those templates to provision and configure the required services (such as Amazon EC2 instances or Amazon RDS DB instances). The deployed application and associated resources are called a "stack."
Version release notes
Major modernization release bringing the pattern current with the latest WordPress, devenv tooling, and the Marketplace Catalog API workflow.
Stack components
- WordPress 6.9.4 (was 6.7.2)
- Apache 2.4 / PHP 8.1 / Ubuntu 22.04 (unchanged)
- aws-cdk-lib 2.225.0 (was 2.120.0)
- oe-patterns-cdk-common 4.5.1 (was 4.2.4); EFS elastic throughput defaults from 4.2.4 are retained
- devenv image 2.8.4 (was 2.5.5); requires --break-system-packages for pip on Ubuntu 24.04 base
- aws-marketplace-utilities packer scripts 1.10.3 (was 1.6.0); fixes silent --install-efs-utils failures (rustup PATH under sudo -E, missing cmake and golang-go for aws-lc-fips-sys build, explicit .deb existence check)
Breaking changes for existing 2.x deployments
- AMI parameter renamed AsgAmiId -> AsgAmiIdv300. Existing 2.x stacks cannot be updated in place - a 3.0.0 stack must be deployed fresh.
- Aurora MySQL engine version may be bumped by the upgraded oe-patterns-cdk-common; existing stacks should expect a maintenance-window apply.
New behavior
- Versioned AMI parameter convention introduced (NEXT_RELEASE_PREFIX = "v300", ami_id_param_name_suffix on Asg) so each release has a distinct parameter name and CloudFormation can't silently reuse the prior AMI.
- AWS Marketplace submission flow ready for the Catalog API (make marketplace-validate / marketplace-submit / marketplace-status); pattern publishing is no longer driven by the deprecated plf_config.yaml spreadsheet flow.
- test/integration/ playwright scaffold added; make test-integration runs an end-to-end smoke test (install wizard -> admin login -> Gutenberg post -> public render) against the deployed dev stack.
- Packer appinstall script now sets set -eux explicitly so provisioning failures abort the build instead of silently shipping a broken AMI (packer's execute_command invokes the script as bash <path>, which treats the shebang as a comment).
- docker-compose.yml now mounts ~/.aws and forwards AWS_PROFILE, matching the Mastodon/Drupal patterns; previously this repo required exporting individual AWS_* vars.
Removed / cleanup
- Dropped dead DEFAULT_WORDPRESS_SOURCE_URL constant from wordpress_stack.py. The pre-2.0.0 CodePipeline + CodeDeploy + Lambda seed-bucket flow was removed in 2.0.0; the constant lingered but was never read. Pattern install path is now the AMI-baked WordPress copied to EFS at first boot.
- Stripped stale PipelineArtifactBucketName / SourceArtifactBucketName / SourceArtifactObjectKey parameters from test/.taskcat.yml and test/main-test/.taskcat.yml - leftover from the same pre-2.0.0 pipeline flow.
- Folded the previously unreleased work (WordPress 6.8.1, EFS permission fixes, root volume size increase, oe-patterns-cdk-common 4.2.4) into this release.
Additional details
Usage instructions
Run the stack, providing valid parameters. When the stack creation completes, go to the outputs of the stack and open the URL in your browser to run the WordPress install wizard. Database credentials are pre-configured. To access the application servers, find the EC2 instance in the AWS console and Connect using the Session Manager option. For more detailed instructions, see the GitHub project.
Resources
Support
Vendor support
Email support offered with subscription. https://fossoncloud.com/products/wordpress
AWS infrastructure support
AWS Support is a one-on-one, fast-response support channel that is staffed 24x7x365 with experienced and technical support engineers. The service helps customers of all sizes and technical abilities to successfully utilize the products and features provided by Amazon Web Services.