Midwest PHP 2018 Notes: Essential AWS for PHP Applications by Michael Moussa
Michael gave us an overview of the different Amazon Web Services (AWS) and walked through what you would need in order to get a PHP site up and running with a database, load balancing, fault tolerance, high availability, security, and performance. He slowly built up a crazy diagram of everything needed for this process.
Main Take Aways
I love the idea that you only pay for what you need but I tried to create an example like his and I couldn’t even get all the options in the pricing calculator. I’m interested in trying this but I think I only have one client where it would be an option (I’ll be asking them if we can try for their test infrastructure).
Every time I try to learn about AWS it’s like trying to wade through an acronym soup so I’m glad I got this overview of the “important parts”.
Things I’m Going to Do
I’m going to try and deploy an application to AWS.
My Raw Notes
- Elastic Compute Cloud (EC2)
- Basic virtual servers
- Amazon Machine Image (AMI)
- Template for EC2 instances
- OS
- Which applications need to be installed
- Libraries
- Configuration
- Data
- AMI used to creates Bare EC2 Instance
- Adding packages creates Customized EC2
- Can use to make your own AMI template
- Instances class are named {family}{generation}.{size}
- Size indicates resouces based on same family generate
- 2xlarge has twice the resources as large (also twice price)
- Elastic Block storage -> slower but you get to keep the data when instance shuts down
- Virtual Private Cloud (VPC)
- Isolated network in AWS
- Fully customizable
- Exists in AWS region and can be across availability zone
- Don’t put applications inside a public subnet want them in Private Subnet
- Bastion -> act as a jump server to access Private subnet
- “Security is about layers”
- Elastic Load Balancing (ELB)
- Load balancing
- AWS Certificate Manager (ACM)
- Free SSL/TLS
- Renewed automatically
- FREE!!!
- Amazon Route 53
- HA DNS service
- 100% SLA
- Has flexible routing
- Based on user’s location/latency/outages
- High Availability
- Accessible to user
- Fault Tolerance
- continues to work even if there are failures
- Fault tolerant items are highly availability by default
- Auto Scaling Group (ASG)
- Automatically creates or removes instances
- Amazon CloudWatch
- Monitoring service
- Collects and displays metrics
- Has alarms
- awslogs collects log information
- Can create instances based on time (if weekday load is higher than weekend load)
- Relational Database Service (RDS)
- Database as a service
- Automated setup and maintenance
- Point in time snapshots
- Can create point-in-time snapshots even up to 5 minutes ago
- Zero downtime scaling and fast recovery from outage
- Can create a read replica
- Can use Route 53 to load balance read only/master access
- Amazon Aurora
- MySQL and PostgreSQL compatible
- Pay-as-you-go
- very low replication lag
- Amazon ElasticCache
- In-memory cache as service
- Memcache or redis
- Fast
- Easy to scale
- Simple Storage Service (S3)
- Pay-as-you-go object storage
- 5 TB per bucket with 5 GB update
- 99.999999999% (11 nine) durability
- File versioning
- VPC Endpoint
- Access S3 from private data so it’s not billed
- Amazon CloudFront
- CDN
Scott Keck-Warren
Scott is the Director of Technology at WeCare Connect where he strives to provide solutions for his customers needs. He's the father of two and can be found most weekends working on projects around the house with his loving partner.
Top Posts
- Working With Soft Deletes in Laravel (By Example)
- Fixing CMake was unable to find a build program corresponding to "Unix Makefiles"
- Upgrading to Laravel 8.x
- Get The Count of the Number of Users in an AD Group
- Multiple Vagrant VMs in One Vagrantfile
- Fixing the "this is larger than GitHub's recommended maximum file size of 50.00 MB" error
- Changing the Directory Vagrant Stores the VMs In
- Accepting Android SDK Licenses From The OSX Command Line
- Fixing the 'Target class [config] does not exist' Error
- Using Rectangle to Manage MacOS Windows