Deployment of Serverless Containerized WordPress through AWS Fargate

Introduction

Deploying WordPress through AWS Fargate has emerged as a revolutionary approach for developers and businesses alike, seeking scalable, efficient, and secure web hosting solutions. This innovative approach to hosting WordPress through AWS Fargate offers the promise of eliminating server management overhead while providing the flexibility to scale applications seamlessly with demand. In this comprehensive guide, we delve into the nuances of setting up WordPress through AWS Fargate, showcasing the steps to harness the power of serverless computing. From creating a robust architecture to navigating the deployment process, we unlock the potential of AWS Fargate to transform your WordPress hosting experience.

The Architecture of AWS Fargate

Fargate is a serverless service of AWS. It is a fully managed container service by AWS. We will install WordPress on Fargate Container for this blog. The architecture below can be used to containerize WordPress in AWS Fargate service.
this image shows WordPress in AWS Fargate service

These AWS services will be required for the WordPress deployment as prerequisites. 

AWS VPC 

  • Subnets  
  • Security Group 

AWS RDS 

  • Aurora Serverless DB 

AWS ALB 

  • Load Balancer 
  • Target Groups 

AWS EFS 

  • File System 

AWS ECS 

  • Cluster 
  • Task Definition 
  • Task 

Learn more about AlphaBOLD’s cloud capabilities here.

AWS Virtual Private Cloud

VPC is a service of AWS that provides security to your resources. It’s just like a wall that protects your resources from anonymous attacks.

Navigate to VPCs and create a Virtual Private Cloud for your application security with a few clicks; the VPC used in this blog is fargateVPC.

Note: VPC is like a wall, protecting your application from anonymous attacks.

In this VPC, we will create two subnets in different availability zones and enable them to auto-assign IPs so that the subnets assign IPs to the services. 

  • 10.0.0.0/24 
  • 10.0.1.0/24 

Read more: How to Use Azure BLOB and AWS S3 with JuiceFS as a Shared storage

Leverage AWS for Seamless Deployment!

Ready to take the plunge into serverless computing with AWS Fargate? Join AlphaBOLD in exploring cutting-edge cloud technologies that make deployment effortless and efficient.

Request a Consultation

WordPress through AWS Fargate: Security Groups

We will use four security group rules to provision WordPress in Fargate. 

  • albSG 

This security group allows traffic from the internet on ports 80(HTTP) and 443(HTTP). 

  • frigates 

This security group inherits the albSG rules and hides the WordPress IP from the internet. 

  • rdsSG 

This security group allows traffic to be on port 3306.  

  • efsSG 

This security group allows traffic to be on port 2049. 

this image shows security group

AWS RDS

AWS RDS is a Relational Cloud Service that supports PostgreSQL, MySQL, Maria DB, Oracle, SQL Server, and Amazon Aurora.

The next step is to provide Aurora Serverless databases for our WordPress website. 

By following these steps, we can create databases (DB). 

  • Select the Aurora DB and select serverless. 
this image shows Aurora DB
  • Select your DB Identifier, the username and the hidden password.
this image shows DB Identifier

In this section you must select connectivity for your databases. All applications must be in the same VPC to interconnect with each other, so we select the recently created fargateVPC. Select your desired configuration for the databases and click the create databases button.

this image shows create databases button - Deployment of Serverless Containerized WordPress through AWS Fargate
this image shows click the create databases button
  • DB username: root 
  • DB password: ******** 
  • DB Name: wordpress 

AWS EFS

AWS EFS is a cloud-based storage file solution for applications and services running on the AWS. 

Our next step is to create the AWS EFS (file system), which will store the directories and files of a WordPress website. 

this image shows AWS EFS

AWS ALB & Target Groups

ALB:

Application Load Balancer, an Elastic Load Balancing feature, plays a crucial role in deploying WordPress through AWS Fargate by allowing developers to configure and route incoming end-user traffic to AWS public cloud-based applications, including WordPress sites hosted on Fargate.

Target Groups:

Target Groups create a traffic route for load balancers.

Application load balancer: The ALB gets a request on port 80/443, and depending on the path (URL), it’ll redirect the request to our application in the container. Create the ALB and Target Group so we can receive requests from the internet.

The target type should be the IP address type. 

this image shows Target type should be the IP address type

In between we can create Target Group by following these steps below.

this image shows create Target Group
Specify the health checks configuration so that your application runs smoothly.
this image shows health checks configuration

Create two listeners for your load balancer for port 80 and 443 and select the target groups which we created and then create the load balancer.

this image shows load balancer

If you want your website to run securely on port 443, add a valid SSL Certificate here through the AWS ACM service.

The AWS ACM is a service that allows you to import your SSL certificate or request a new one from AWS against your valid domain, which as a result, exchanges the DNS records. 

this image shows exchanges the DNS records

AWS ECS

AWS Elastic Container Service (ECS) is an orchestration service that plays a pivotal role in deploying WordPress through AWS Fargate by providing fully managed containers. It offers on-demand scalability, reliability, and security, making it ideal for hosting WordPress. The ECS ensures automated deployment solutions for applications, including WordPress sites hosted through AWS Fargate.

The feature of ECS highlighted in this blog is Fargate, which significantly simplifies infrastructure management and enhances scalability for WordPress deployments. This allows teams to concentrate more on development rather than operational complexities.

To start deploying WordPress through AWS Fargate, navigate to AWS ECS and create a cluster by selecting the “Networking only” cluster template, specifically designed for the Fargate service.

Read more: Deploy Dockerized WordPress with AWS RDS & AWS EFS

this image shows AWS ECS- Choose the option of “Networking only” which will be used for Fargate service.

As we don’t have any service, task, or task definition after creating a cluster, we will need to create a new one.

Unlock the Power of AWS for your Business!

Dive into the world of AWS with AlphaBOLD, and let us help you leverage AWS Fargate for streamlined, cost-effective deployments. Transform your web presence today.

Request a Consultation
this image shows creating a cluster
this image shows task definition after creating a cluster

Before we begin, we must know the difference between the Task Definition, Task, and Service.

  • Task Definition: TD consists of container configurations such as container Images, databases, and the file system from which our application deals.
  • Task: The Task launches a container.
  • Service: Services are typically used for long-running applications like web services. Services can be configured to use a load balancer for any specified containers to create the tasks accordingly. 
this image shows long-running applications

Select Linux as OS type.

this image shows Select Linux as OS type.

Select the EFS and specify the volume path.

this image shows Select the EFS and specify the volume path. Deployment of Serverless Containerized WordPress through AWS Fargate

Select your desired values for container memory and CPU for the container configuration.

this image shows container configuration

Add Container and insert your container image as (image:tag) wordpress:latestPort must be 80, as by default WordPress listens on port 80.

Read more: Simplify your Azure Infrastructure with Azure Blueprints

this image shows default WordPress listens on port 80 - Deployment of Serverless Containerized WordPress through AWS Fargate
We can put our database values here as specified in the image below.
this image shows put our database values
Select Mount Point or container path as /var/www/html/ for WordPress.
this image shows Select Mount Point or container path - Deployment of Serverless Containerized WordPress through AWS Fargate

After creating task definition creation, we will create a service. 

this image shows create a service

The service type must be Fargate. There are multiple revisions you can create to update your service. The platform version should be 1.4.1, it contains Amazon Linux.

this image shows update your service

At the network configuration of the container, you will select the VPC and respective subnets and the security group.

this image shows network configuration of the container

Now we can add a load balancer into our service for internet facing.

this image shows add a load balancer

Add the https listener port so that your website runs on port 443 (HTTPS).

this image shows https listener port

Configure auto-scaling for your container, it’s optional, and then create the service.

After provisioning the service, it deploys the task as displayed in the image below. 

this image shows Configure auto scaling for your container - Deployment of Serverless Containerized WordPress through AWS Fargate

Here’s our running container.

this image shows running container

You can access your container through your load balancer public DNS. If you have a valid domain available, you can add your ALB DNS into domain DNS records as CNAME and your valid SSL certificate so that it will run on port 443. Currently, our container runs on port 80.

this image shows Deployment of WordPress in AWS Fargate

Embark on your Cloud Transformation!

Start your journey towards scalable, efficient, and innovative cloud solutions with AlphaBOLD. Discover the full potential of AWS together.

Request a Consultation

Conclusion

Deployment of WordPress through AWS Fargate architecture offers a remarkable solution for hosting providers. By leveraging WordPress through AWS Fargate, you can easily create a Fargate architecture and host multiple websites simultaneously. This approach not only ensures on-demand scalability, elasticity, reliability, and security but also streamlines the hosting process. We hope this blog assists you in deploying WordPress through AWS Fargate efficiently and effectively, harnessing its full potential to enhance your web hosting experience.

Explore Recent Blog Posts