Services Offered
Amazon S3
An object storage that can store and retrieve data from anywhere.- great tool for Internet backup option
- cheapest option for object storage category
- data is retrievable from the Internet
AWS Data Transfer
- not only helps in collecting data, but monitoring and analyzing it in real time.
- number of data transfer services are available eg. Kinesis, import/export Snowball, and Direct Connect
Amazon EC2 (Elastic Compute Cloud)
Provides secure and resizable compute capacity, designed to make web-scale cloud computing easier.- is a resizable computer.
- can be resized anytime as per the requirement.
Amazon SNS (Simple Notification Service)
Enables messages to be delivered across a large number of subscribers, systems and services and mobile devices.- update user with notification through email or sms
- can send anything
Amazon KMS (Key Management System)
A service integrated into most other AWS services, it helps create and control the encryption keys used to encrypt the user's data.- to encrypt the data
Amazon Lambda
A compute service that executes the code only when needed and scales automatically.- service for wnich we pay only for the seconds it uses to execute.
- no need to pay for the infrastructure.
Route 53
The DNS web service is designed to give developers and businesses a reliable and cost effective method to route users to internet applications.- DNS service in the cloud
EC2
EC2 is a web-service which aims to make life easier for developers by
providing secure and resizable compute capacity in the cloud.
- ease in scaling up/down
- can be integrated into several other services.
- pay only for what you use.
Case study: Newsletter
Requirement
- AWS account
-
EC2 instance for compute capacity
-
choose an AMI (Amazon Machine Image) - is the software and
application packages that we would need to run the application
- it is a template that is used to create an instance/machine based on user requirement.
- it contains: Software information, OS information, Volume information, Access permissions, etc
- 2 types: Predefined (Amazon provided from AMI Marketplace) or Custom
-
choose an instance type - choose h/w depending on the workload,
and choose size of the h/w depending on the intensity of the
workload.
- specifies hardware specifications that are required in the machine form the previous step.
- categorized into 5 main families: Compute optimized (for high processing power), Memory optimized (for in-memory caching), GPU optimized (large graphical requirement), Storage optimized (storage servers), General purpose
- instance types are fixed and can not be altered.
-
configure instance - eg. no of instances, which subnet do we
want them in, what's going to be the terminate behaviour of the
instances, do we need to update any package when instance starts
running, etc
- specify the number of instances, purchasing options, kind of network, subnet, when to assign public IP, IAM role, shutdown behaviour, add bootstrap scripts when VM starts, etc
- multiple payment options are available: on-demand instance, reserved instance, spot instance
-
adding additional storage - to EC2 instance
- deciding type of storage: Ephemeral (temporary and free), Amazon Elastic Block Store (permanent and paid), Amazon S3
- add tags - to easily identify the EC2 instance at a later point.
-
configure security group (aka firewall) - to allow/deny
connection to/from the outside world.
-
this is where user can finetune the access to the EC2 instance
based on port number and IP address
-
review and launch
- Before launching, Amazon gives us option to create a key pair (public and private). Private key (.pem file) is downloaded by the user, and kept secret. The public key is kept by Amazon to identify the user.
-
choose an AMI (Amazon Machine Image) - is the software and
application packages that we would need to run the application
-
Create a topic in SNS
- Simple Notification Service is a service in Amazon that helps us notify the customer through email.
- Create a topic and make it public.
- Add subscribers to the topic.
-
Create a bucket in S3
- store the content in this bucket.
- Create an event in the bucket relating it with SNS.
- Sync the S3 bucket and AWS instance.