Amazon S3 – A Summary


A Summary of S3

Amazon S3 is the core object storage service on AWS, allowing you to store an unlimited amount of data with very high durability. It can be used to backup and archive data, host websites, Mobile and Cloud app hosting, disaster recovery and big data analytics.

Amazon S3 can be integrated with many other AWS cloud services, including AWS IAM, AWS KMS, Amazon EC2, EBS, EMR, DynamoDB, Redshift, SQS,  Lambda and CloudFront.

Object storage differs from traditional block storage and file storage. Block storage manages data at a device level as addressable blocks, while file storage manages data at the operating system level as files and folders. Object storage manages data as objects that contain both data and metadata, manipulated by an API.

S3 Buckets are containers for objects stored in Amazon S3. Bucket names must be UNIQUE you cannot have the same name as someone else in the world. Each bucket is created in a specific region and data does not leave the region unless explicitly copied by the user.

Objects are stored in Buckets, the objects can be up to 5TB and can contain any kind of data. Objects contain both data and metadata and are identified by keys. Each Amazon S3 object can be addressed by a unique URL formed by the web services endpoint, the bucket name and the object key.

Amazon S3 has a minimalistic API—create/delete a bucket, read/write/delete objects, list keys in a bucket—and uses a REST interface based on standard HTTP verbs—GET, PUT, POST,
and DELETE. You can also use SDK wrapper libraries, the AWS CLI, and the AWS Management Console to work with Amazon S3.
Amazon S3 is highly durable and highly available, designed for 11 nines of durability of objects in a given year and four nines of availability.
Amazon S3 is eventually consistent, but offers read-after-write consistency for new object PUTs. Amazon S3 objects are private by default, accessible only to the owner. Objects can be marked public readable to make them accessible on the web. Controlled access may be provided to others using ACLs and AWS IAM and Amazon S3 bucket policies.

Static websites can be hosted in an Amazon S3 bucket. Prefixes and delimiters may be used in key names to organize and navigate data hierarchically much like a traditional file system.
Amazon S3 offers several storage classes suited to different use cases: Standard is designed for general-purpose data needing high performance and low latency. Standard-IA is for less
frequently accessed data. RRS offers lower redundancy at lower cost for easily reproduced data. Amazon Glacier offers low-cost durable storage for archive and long-term backups that
can are rarely accessed and can accept a three- to five-hour retrieval time. Object lifecycle management policies can be used to automatically move data between storage classes based on time.

Amazon S3 data can be encrypted using server-side or client-side encryption, and encryption keys can be managed with Amazon KMS. Versioning and MFA Delete can be used to protect against accidental deletion. Cross-region replication can be used to automatically copy new objects from a source bucket
in one region to a target bucket in another region. Pre-signed URLs grant time-limited permission to download objects and can be used to protect media and other web content from unauthorized “web scraping.” Multipart upload can be used to upload large objects, and Range GETs can be used to download portions of an Amazon S3 object or Amazon Glacier archive.
Server access logs can be enabled on a bucket to track requestor, object, action, and response.

Amazon S3 event notifications can be used to send an Amazon SQS or Amazon SNS message or to trigger an AWS Lambda function when an object is created or deleted.
Amazon Glacier can be used as a standalone service or as a storage class in Amazon S3. Amazon Glacier stores data in archives, which are contained in vaults. You can have up to
1,000 vaults, and each vault can store an unlimited number of archives. Amazon Glacier vaults can be locked for compliance purposes.


AWS Services Overview


List of Aws Services

A quick overview of some of the AWS Services and what they do, found this very useful when studying for the AWS certifications.

I will be covering a lot more on AWS as i delve deeper into the course and start looking at other courses as well.

Name of ServiceEasy naming conventionUse This to?
EC2Amazon Virtual MachinesHosting your virtual machines
IAMUsers, Keys and Certs managerSimilar to Active Directory, it's used to manage users, policies and keys
S3Amazon Unlimited FTP ServerHosts files such as, Images, assets for websites, backups and can share these files between services.
VPCA Virtual Private NetworkCreate and configure your own network
LambdaAWS App ScriptsRun snippets of code such as JD, Java or Python.
API GatewayAPI ProxyAllows you to monitor and block specific types of traffic that is targeting your apps
RDSAmazon SQLThis will be where you host your databases. MySQL, PostgreSQL and Oracle are supported
Route53Amazon DNS / DomainsBuy new domain names and configure the DNS records for it
SESAmazon Transactional EmailAllows you to send one-off emails such as password resets and notifications
CloudFrontAmazon CDNAllows a website to load faster by distributing content to a server local to the user
CloudSearchAmazon Full Text SearchPulls in data from other services and allows you to search for something across every instance
DynamoDBAmazon NoSQLautomatically scale-able database
ElastiCacheAmazon MemcachedCaches specific data so that it can be called for more quickly
Elastic TranscoderAmazon Cut ProAllows you to transcode Audio and Video
SQSAmazon QueueStore data that can be processed in the future. Allows data to be called upon more quickly
WAFAWS FirewallBlocks bad requests to CloudFront protected sites.
CognitoAmazon Oauth as a serviceAllows users to login with Social media accounts, i.e google, facebook
Device FarmAWS AndroidAllows you to test your apps against various smart phone Operating Systems
Mobile AnalyticsMobile Analytics.. One that makes sense!Track what users are doing within your app
SNSAmazon MessengerSend mobile notifications, E-mails and/ or SMS Messages
CodeCommitAmazon GitHubVersion control for your code
CodeDeploySend code from CodeCommit to your EC2 Instances
CodePipelineAmazon Continuous IntegrationRun automated tests with your code and make amendments if it passes your tests
EC2 Container ServiceAmazon Docker as a ServicePut a Docker file into an EC2 instance so you can run a webiste
Elastic BeanStalkAmazon Platform as a ServiceMove your app from 3rd party services to Amazon when it gets too expensive
AppStreamAmazon CitrixPuts a copy of a Windows application on a Windows Machine and allows people to connect to that machine
Direct ConnectAmazon Direct ConnectPay an ISP and AWS to get directly connected to the cloud.. Faster Solution
Directory ServiceAmazon Directory ServiceLink applications to Microsoft Active Directory
WorkDocsAmazon File ShareShare Word Documents with colleagues
WorkMailAmazon EmailEmail solution for your business
WorkSpacesAmazon Remote ComputerProvides a Windows box that you can remotely connect too
Service CatalogAmazon Setup AlreadyGive users access to apps that you have already configured
Storage GatewayCloud DriveFor external storage without paying for excess hardware
Data PipelineAmazon ETLManage data from other locations in AWS. Can be scheduled and you can setup alerts for when it fails
Elastic Map ReduceAmazon HadooperAnalyse massive files of raw data that is being kept in S3
GlacierReally slow S3Used for archiving old data - to be used for long term archiving.
You will not be able to get data back quickly unless you pay a fee
KinesisAmazon High ThroughputIngests a lot of data very quickly so it can be referred back to later
RedShiftAmazon Data WarehouseStore analytic data, process it and dump it back out
Machine LearningSkyNet..Predict future behavior from existing data for problems like fraud detection or market research
SWFAmazon EC2 QueueA web service that keeps that current state of your workflow
SnowballAWS NAS DriveAn Amazon Harddrive that you would connect to your network and transfer data between your network and AWS
Cloud FormationAmazon Services SetupConfigure multiple AWS services at once
CloudTrailAmazon LoggingLog who is doing what in your AWS Environment
CloudWatchAmazon Status PagerGet alerts about AWS services failing or disconnecting
ConfigAWS Configuration ManagementTrack AWS changes
OpsWorksAmazon ChefHandle running your application with things like auto-scaling
Trusted AdvisorAmazon PennypincherFind out where all your money is going in AWS
InspectorAWS AuditingScans your AWS setup to see if it is secure