## CloudPress ![Cloud Deployment](./resources/architecture.png) ### Objective CloudPress is a project designed to provide hands-on experience in deploying a WordPress website with MariaDB and Nginx on the Amazon Web Services (AWS) cloud platform. The goal is to utilize Terraform for infrastructure creation and Ansible for application installation, resulting in a production-ready setup. Upon completion of this project, you'll achieve: - A robust AWS environment primed for hosting WordPress and MariaDB orchestrated through Terraform. - Seamless installation and configuration of Linux, Nginx, MariaDB, PHP, and WordPress using Ansible. - Implementation of security protocols, performance optimizations, and meticulous documentation, ensuring a fully-fledged production-level WordPress site. ## Prerequisites Before starting this project, make sure you have a solid understanding of the following concepts: - Cloud computing principles, particularly AWS. - Terraform for infrastructure provisioning. - Ansible for application installation and configuration. - Familiarity with web servers, databases, and WordPress. - Web security and optimization best practices. ### Instructions #### AWS Infrastructure Setup with Terraform - Create an AWS account. - Configure Terraform files to provision EC2 instances, security groups, storage, and networking. - Securely set up and configure an EC2 Instance (SSH, security, etc.). > Keep track of your usage to avoid unexpected bills, try to use the free tier! > Verify that all services are terminated after completion of use! #### Nginx Installation and Configuration using Ansible - Install Nginx on the EC2 Instance. - Configure Nginx for serving web content. - Adjust firewall settings to allow HTTP/HTTPS traffic. - Start the Nginx service. #### MariaDB Installation and Configuration using Ansible - Install MariaDB on the EC2 Instance. - Create a MariaDB database for WordPress. - Create a user for WordPress and configure user rights and privileges. - Start the MariaDB service. #### PHP Installation and Configuration using Ansible - Install PHP on the EC2 Instance. - Configure PHP settings for the WordPress site. - Start the PHP service. #### WordPress Installation and Configuration using Ansible - Download and set up WordPress on the EC2 Instance. - Configure WordPress to use the MariaDB database. - Start the WordPress service. #### Documentation Prepare a comprehensive `README.md` detailing: - Architecture overview. - Deployment process. - Additional configurations made. - Tips and potential pitfalls. ### Evaluation Criteria Your CloudPress project will be evaluated based on: - Successfully setting up WordPress, MariaDB and Nginx using Terraform to create the infrastructure and Ansible for installing everything. - Secure and effective environment configuration. - Quality and clarity of the provided documentation. ### Conclusion Completing CloudPress will equip you with valuable experience in deploying web applications on a public cloud. Emphasizing infrastructure as code practices and configuration management, you'll have a functional WordPress website hosted on AWS, preparing you for similar real-world tasks in your career.