Amazon Web Services
- Wener Vogels is AWS CTO
- AWS training slideshow
|Scaling in/out||reduce/add nodes(servers)|
|Scale up/down||add/reduce capacity like RAM, CPUs, etc.|
|Elasticity||the rubberband effect to expand/contract resources proportionally to the demand.|
- 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
- uses RRS (Reduced Redundancy Storage) which is less costly
- 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
- like S3 but for archiving
- 3 to 5 hour retrieval time
- super cheap
- use it for backups
- uses Object Storage
Content Delivery Network (CDN)
- uses Object Storage
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.
helps you to create a CloudFormation template
Elastic Load Balancer
- balances traffic (HTTP, HTTPS, TCP) between EC2 instances using round-robin
- single CNAME for DNS config
Monitoring (similar to NewRelic)
- monitoring CPU, Network traffic, etc.
- can set alarms
Relational Database Service
- supports MySQL, Postgres, SQL, Oracle
- quick recovery backups, security, scalability
- monitor with CloudWacth
- no ssh access or root access
- has development mode (way cheaper)
- you can access it from EC2
psql -h dev-db.lala.us-east.rds.amazon.com -u admin -p
Simple Message Queuing Service
- Similar to RabbitMQ
- uses a pull (polling) flow
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
Simple Notification Service
- publish messages from app or console
- uses subscribers
- eg. CloudWatch alerts
- uses a push flow
- app json
- 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.
Identity and Access Management
- recommended for using AWS SDKs
- create a rol for webserver and select this role in AMI
- that way the EC2 doesn't need to instantiate SDK with creds because it gets them from the EC2 metadata.