Deploy PHP Apps on AWS Beanstalk & Deploy with Git
AWS Elastic Beanstalk
What is AWS Elastic Beanstalk? Easy way to deploy and manage applications on AWS. Automatically provisions ELB, Auto Scaling, and CloudWatch. Easily snapshot application logs from EC2 instances. Receive email notifications through SNS for application health changes. Open platform with access to underlying resources Manage configuration settings in a single place for: Switching instance types Running in multiple AZ Turning on HTTPS Providing a JDBC connection string Etc…
How Does AWS Elastic Beanstalk Work? yourApp.elasticbeanstalk.com Amazon Route 53 Hosted Zone Elastic Load Balancer Amazon EC2 Instances AmazonCloudWatch Alarms Web Web Server ServerAmazon SNS Host Amazon S3Notifications Manager Bucket Auto Scaling Group AZ-1 AZ-2 Region
What we will show: AWS Management console Launch initial application Launch dev environment Push out some code Launch production environment Look at how we can customize Make our application highly available!
Key Features Tomcat 6 & 7, PHP IAM support – for controlling access to Elastic Beanstalk resources Configuration settings across EC2 fleet: AWS credentials (to connect to DynamoDB) Database connection strings (to connect to RDS) Common web server or app server settings Auto Scaling UI Save Configuration – for persisting golden set of settings Swap URL – for deploying or updating with minimal downtime
Best Practices Deploy production workloads to at least 2 AZ. Load test application prior to launch to understand bottlenecks. Inject IAM credentials through Elastic Beanstalk Inject JDBC connection strings through Elastic Beanstalk Terminate SSL connections at the ELB Create a custom AMI for use with Elastic Beanstalk