Amazon Web Services (AWS) is a collection of remote computing services, also called web services that together make up a cloud computing platform by Amazon.
Elastic Compute Cloud (EC2)
Amazon Elastic Compute Cloud (EC2) provides resizeable computing capacity in the amazon Web Services (AWS) cloud. You can use EC2 to launch a virtual machine. EC2 environments are called instances. EC2 instances will automatically scale up. AWS also provides pre-configured templates for your instances, known as Amazon Machine Images (AMIs).
EC2 works in conjunction with Amazon Virtual Private Cloud (Amazon VPC) to provide security and robust networking functionality. There are settings that enable you to specify the protocols, ports, and source IP ranges that can reach your instances using security groups (firewalls). Every Amazon EC2 instance is protected by one or more security groups, named sets of rules that specify which ingress (i.e., incoming) network traffic should be delivered to your instance. You can specify TCP and UDP ports, ICMP types and codes, and source addresses. Security groups give you basic firewall – like protection for running instances.
Another way to restrict incoming traffic is to configure software – based firewalls on your instances. Windows instances can use the built – in firewall. Linux instances can use netfilter and iptables. You use the AWS Management Console to log in to these machines. For developers, these unified CLI tools allow for easy API access.
DynamoDB is a fast and flexible NoSQL database service for all applications that need consistent, single-digit millisecond latency at any scale. It is a fully managed database and supports both document and key-value data models. Its flexible data model and reliable performance.
Elastic Block Store (EBS)
Elastic Block Store (EBS) is a virtual hard drive you can use with your EC2 instances. It allows you to keep your data separate from your computing instance. You can attach it to your instances when needed.
EBS volumes can be between 1GB and 1TB in size. They are created in a particular Availability Zone (AZ), which is a distinct physical location that contains computing resources, similar to a data center.
When you create an EBS volume in an AZ, it is automatically replicated within that zone to prevent data loss. An EBS volume can only be attached to one instance at a time, but many volumes can e attached to a single instance. You can attach multiple volumes ans stripe your data across them for increased I/O and throughput performance. This is particularly helpful for database-intensive applications that frequently encounter many random reads and writes accross the dataset.
Relational Database Service (RDS)
Relational Database Service (RDS) is a web service which makes it easy to setup, operate and scale relational databases in the cloud. It allows you to create and use MySQL, Oracle, SQL Server, and PostgreSQL databases. RDS database instances are pre-configured with appropriate settings for the type you have selected. You can easily scale your databases’s compute and storage resources with AWS Management Console or a simple API call.
Elastic Load Balancing (ELB)
Elastic Load Balancing (ELB) distributes incoming web traffic across multiple EC2 instances. ELB can automatically redirect traffic to another running instance.
You can create and manage security groups associated with your ELB to provide additional networking and security options. You can also setup an Elastic Load Balancer to load balance incomming application traffic across EC2 instances in a single Availability Zone (AZ) or multiple AZs.
You can use Elastic Beanstalk to deploy applications developed with many popular programming languages. Elastic Beanstalk automatically handles the deployment details of capacity provisioning, load balancing, auto scaling, and application health monitoring. You can use CloudWatch with Elastic Beanstalk to get metrics and set alarms. You can access Elastic Beanstalk through the Management Console. You can also use the Elastic Beanstalk command line interface or the Elastic Beanstalk API. AWS also provides Tooljits and SDKs.
Elastic Beanstalk provides HTTPS endpoints for encrypted network access and requires the use of cryptographic credentials in order to access or launch any required AWS resources. You can add an additionally layer of security by setting up a DMZ (Amazon VPC) to create a private subnet for your AWS resources.
Simple Storage Service (S3)
Simple Storage Service (S3) is a safe, secure, highly scalable object storage in the cloud. It can be used to store and retrieve any amount of data, at any time, from anywhere on the web. S3 allows versioning, so you have a record of changes and can roll back to any previous version when needed. S3 provides standards-based REST and SOAP web services APIs so you can programmatically store, retrieve, and manage your data.
Most developers building applications on Amazon S3 use the software development kit (SDK), which wraps the underlying REST API. You can also access S3 using the command line interface or the Management Console, which is a simple web interface.
S3 stores data as objects and objects are stored within folders that are called buckets. To store an object in S3 you upload the file to a bucket. When you upload a file, you can set permissions on the object so it’s private until you want to share it. Buckets are containers for objects. You can have one or more buckets. For each bucket you can control access to the bucket.
CloudFront is a content delivery web service. It integrates with other Amazon Web Services products to give developers and businesses an easy way to distribute content to end users with low latency, high data transfer speeds, and no minimum usage commitments. Requests for your content are automatically routed to the nearest edge location, so content is delivered with the best possible performance. With CloudFront, you can just use the same domain name to point to all of your website content. The service automatically responds as demand increases or decreases without any intervention from you. CloudFront also uses multiple layers of caching at each edge location and collapses simultaneous requests for the same object before contacting your origin server.
A single API call lets you get started distributing content from your S3 bucket or EC2 instance or other origin server through the CloudFront network. Or, interact with CloudFront through the AWS Management Console.