AWS
- Wener Vogels is AWS CTO
- AWS training slideshow
- Assume everything will fail someday.
- Prevent single point of failure by adding backup instances.
Simple Storage Service
- it is good for data that does not change fast, because it has a delayed effect to refresh
- stores using Elastic Block Storage
- provides access via REST API and ftp.
- uses Object Storage (key-value)
- it has a caching effect
- stores in flat organization containers called buckets
- object retrieval by keys
- by keeping it flat, it is very fast to query
Glacier
- like S3 but for archiving
- 3 to 5 hour retrieval time
- super cheap
- use it for backups
- uses Object Storage
CloudFront
Content Delivery Network (CDN)
- uses Object Storage
CloudFormation
Templates for AWS environments
- text template files of your AWS environment written in json
- can pass parameters
- this would be helpful to create an instance of certain environment, for example staging environment for QA.
ELB
Elastic Load Balancer
- balances traffic (HTTP, HTTPS, TCP) between EC2 instances using round-robin
- scales
- single CNAME for DNS config
CloudWatch
Monitoring (similar to NewRelic)
- monitoring CPU, Network traffic, etc.
- can set alarms
RDS
Relational Database Service
- supports MySQL, Postgres, SQL, Oracle
- quick recovery backups, security, scalability
- no ssh access or root access
- has development mode (way cheaper)
- you can access it from EC2
- Similar to RabbitMQ
- uses a pull (polling) flow
SWF
Simple Work Flow
- eg. e-commerce work-flow
- looks like a sequence diagram
- has a Decider which decides if should proceed with workflow or abort.
- this can help decouple complex work-flows
SNS
Simple Notification Service
- publish messages from app or console
- uses subscribers
- eg. CloudWatch alerts
- uses a push flow
- SMS
- SQS
- HTTP
- app json
Dynamo DB
- uses Solid State Drives (super fast)
- used for stateless apps (eg. sessions)
- the user session state can be saved in NoSQL instead of the client. It wouldn’t be possible to keep state in the server when using load balancing.
- recommended for using AWS SDKs
- that way the EC2 doesn’t need to instantiate SDK with creds because it gets them from the EC2 metadata.