AWS is flexible, cost-effective and easy-to-use cloud computing platform
Storage
AWS provides low-cost data storage with high durability and availability.
You can choose different services for different purposes such as Backup, Archiving and Disaster Recovery. AWS offers block, file and object storage services.
- Block Storage: EBS, EC2 Instance Storage
- File Storage: EFS
- Object Storage: S3
- Archive Storage: Glacier
- Transfer and On-prem Services: Snowball, Storage Gateway
S3 — Simple Storage Service
- Secure, durable, highly scalable, low-cost object storage service
- You can store and retrieve any amount of data at any time
- S3 exposes a web service interface
- You can write, read and delete objects which size of 0–5TB size in concurrent.
S3 has got different storage classes for different use cases including the following;
- Standart: General purpose, It’s suitable for frequently accessed objects
- Standart-Infrequent Access: Less frequently accessed but long-lived objects
When you should use S3?
- It’s suitable to store and distribute static content. You can reach the files with an unique HTTP URL. Also S3 can serve as an origin store for a CDN. S3 doesn’t require storage provisioning, so S3 works well for fast growing websites which are hosting data-intensive, user-generated content such as video and photo sharing sites. Therefore you can serve the static websites and static components through S3.
- S3 is used as a data store for computation and analytics such as transaction analysis, clickstream analytics and media transcoding. Thanks to horizontal scalability of S3, you can access your data from multiple computing nodes without being constrained by the single connection.
When you shouldn’t use S3?
- When you want to access the data over filesystem, S3 isn’t good option. Because S3 isn’t POSIX-compliant filesystem. S3 uses namespaces to access objects. Take a look the EFS
- When you use the S3, you must know the exact location of objects. You need to know the bucket name and key of the objects you want to retrieve from service. S3 can’t be used as database or search engine by itself. Instead, pair S3 and DynamoDB or RDS to index objects and buckets.
- If you have rapidly changing and growing data, you should select block or file storage services with capability high provisioned iops.
- When you access the data infrequently, let’s consider that the Glacier can store your data and it’s cost-effective solution.
S3 in Box
- Access to S3 from EC2 is designed to be fast in the same region.
- The server-side latencies of S3 are insignificant relative to Internet latencies.
- S3 is built to scale the storage, requests and numbers of users to support large number of webapplications. S3 aggregate throughput scales to rates which far exceed any single server can generate.
- To improve the upload performance of large objects which are size greater than 100MB, use multipart-upload command to upload as set of parts. Using multipart-upload you can get improved throughput and quick recovery from network issues. Another benefit of using multipart-upload, you can upload your objects in parallel and upload of smaller parts instead of restarting the upload.
- You can pair S3 with CloudSearch, DynamoDB and RDS. You can’t apply complex filter queries in S3. Search engine or database serves as repository for metadata of objects which are stored in S3. Metadata in the database can be indexed and queried. You can find the exact location of objects from metadata. Then retrieve objects from S3.
- S3 Transfer Acceleration enables fast and secure transfer of files to long distances between clients and S3 bucket. The traffic to S3 comes from CloudFront edge locations through Amazon optimized network path. Amazon claims the performance improvements in excess of 500 percent when performing intercontinental uploads.
- Standard and Standard-IA storage classes provide high durability and availability by automatically storing your data across multiple devices and facilities within a region. Error correction is built-in. There is no single point of failure.
- Durability: 99.99999999999 (11nines) Availability: 99.99
The below statistics are making it well suited to serve as the primary storage for mission-critical data. - By Enabling cross-region replication in S3 bucket, the objects in S3 bucket can be copied to another S3 bucket which is located in another region by automatically.
- You can store any amount of data in S3 unlike file systems. S3 supports a virtually unlimited number of files and bytes in any bucket.
- You can manage access to S3 from other AWS accounts and users. Create access policies to perform resource operations.
- You can protect your data at rest by using server-side encryption which encrypts your data before it’s written to disk in datacenters. When you want to retrieve your data, it will be decrypted then send back to you.
- You can protect your data by using client-side encryption which you encrypt data in client side and upload the encrypted data to S3. You can protect data in-transit by using Secure Socket Layer or client-side encryption.
- You can use versioning to preserve, retrieve and restore every version of object stored in S3 bucket. By enabling versioning, you are able to recover application failures and unintended user actions. Additionally you can enable MFA Delete for bucket. With this option, when users attempt to change version state or delete the object, they must provide the account credentials and time-based token.
- You can enable access logging. Each access log record provides details about a single access request such as bucket name, request time and action. This feature can be useful in security and audits. Also you can understand the usage and bill.
- You can use the S3 Notification feature to receive notifications when events happen in your bucket. S3 can publish, when object is deleted or updated. Notifications can be issued to SNS, SQS and Lambda
Cost and Billing
- You pay only for storage. There isn’t fee and setup cost.
- S3 Standart Pricing
- Storage // per GB per month
- Data transfer in or out // per GB per month
- Requests // per thousand per month
- Data Acceleration Fee, if you have enabled - Also Free tier usage exists.
S3 Summary
Finally, S3 is used as a highly durable, scalable, and secure solution for backup and archiving of critical data. You can move cold data to Glacier using lifecycle management rules on data stored in S3. You can also use S3 cross-region replication to automatically copy objects across S3 buckets in different Regions asynchronously, providing disaster recovery solutions.