Midwest PHP 2018 Header

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