Professional Documents
Culture Documents
Elastic Beanstalk is a PaaS-like layer ontop of AWS's IaaS services which abstracts
away the underlying EC2 instances, Elastic Load Balancers, auto scaling groups,
etc. This makes it a lot easier for developers, who don't want to be dealing with all
the systems stuff, to get their application quickly deployed on AWS. It's very similar
to other PaaS products such as Heroku, EngineYard, Google App Engine, etc. With
Elastic Beanstalk, you don't need to understand how any of the underlying magic
works.
ELBs are intended to load balance across EC2 instances in a 'single' region.
Whereas DNS load-balancing (Route 53) is intended to help balance traffic 'across'
regions. Route53 policies like geolocation may help direct traffic to preferred regions,
then ELBs route between instances within one region.
Functionally, another difference is that DNS-based routing (e.g. Route 53) only
changes the address that your clients' requests resolve to. On the other hand, an
ELB actually reroutes traffic.
One analogy is: if you ask for the closest WalMart, you may get an address based on
your location, but you could choose to go to another Walmart if you know one. That's
Route 53; it just switches the address resolved based on some context. On the other
hand, a policeman redirecting traffic because of construction, is more like an ELB,
he/she is actually changing the traffic flow, not just suggesting.
There are additional considerations about whether DNS-based routing versus Load
Balancing is best for your use case, and why (or if) Route53 and ELB continue to co-
exist, but hopefully this helps at a high-level.
Both Route53 and ELB are used to distribute the network traffic. These AWS
services appear similar but there are minor differences between them.
1. ELB distributes traffic among Multiple Availability Zone but not to multiple Regions.
Route53 can distribute traffic among multiple Regions. In short, ELBs are intended to
load balance across EC2 instances in a single region whereas DNS load-balancing
(Route53) is intended to help balance traffic across regions.
2. Both Route53 and ELB perform health check and route traffic to only healthy
resources. Route53 weighted routing has health checks and removes unhealthy
targets from its list. However, DNS is cached so unhealthy targets will still be in the
visitors cache for some time. On the other hand, ELB is not cached and will remove
unhealthy targets from the target group immediately.
Use both Route53 and ELB: Route53 provides integration with ELB. You can use
both Route53 and ELB in your AWS infrastructure. If you have AWS resources in
multiple regions, you can use Route53 to balance the load among those regions.
Inside the region, you can use ELB to load balance among the instances running in
various Availability Zones.
Content Delivery & Domain Name System
CloudFront is a content delivery network (CDN) that allows you to store (cache)
contents at “edge locations” located all around the world. This allows customers to
access your content more quickly (and also provides additional security – especially
against DDos attacks)
EBS vs EFS vs S3
EFS is:
EBS is:
A block storage (so you need to format it). This means you are able to choose
which type of file system you want.
As it's a block storage, you can use Raid 1 (or 0 or 10) with multiple block
storages
It is really fast
It is relatively cheap
With the new announcements from Amazon, you can store up to 16TB data
per storage on SSD-s.
You can snapshot an EBS (while it's still running) for backup reasons
But it only exists in a particular region. Although you can migrate it to another
region, you cannot just access it across regions (only if you share it via the EC2;
but that means you have a file server)
You need an EC2 instance to attach it to
New feature (2017.Feb.15): You can now increase volume size, adjust
performance, or change the volume type while the volume is in use. You can
continue to use your application while the change takes effect.
S3 is:
Glacier is:
In short
https://developer.ibm.com/recipes/tutorials/a-step-by-step-guide-choosing-aws-
storage-options-ebs-efs-and-s3/
With ECS you'll have to build the infrastructure first before you can start deploying
the the Dockerfile so it really comes down to 1) your familiarity with infrastructure and
2) level of effort that you want to spend on the infrastructure vs the app.