AWS CCP Certification Essentials Part-03 (AWS Storage services and Database Services)

Chamindu Udakara
12 min readMar 8, 2023
AWS Services

Storage Services

In today’s digital world, storing and accessing data has become a critical aspect for businesses. That’s where Amazon Web Services (AWS) comes in with their cloud-based storage services. In this blog post, we’ll dive into one of their most popular storage services. Amazon Web Services (AWS) offers a range of storage services that allow you to store and manage data in the cloud.

AWS Storage Services

1. Simple Storage Service (S3)

One of the most popular storage services is Simple Storage Service (S3), an object storage service that is highly available, scalable, and durable.

Key features of S3:

  • Objects are stored in buckets: In S3, objects (or files) are stored in buckets (or directories), which you can create and manage as needed. Each bucket has a unique name, and you can create as many buckets as you need.
  • Object structure: In object storage, each object consists of data, metadata, and a key. Data is the actual content of the object, while metadata provides information about the object, such as its size, type, and creation date. The key is a unique identifier for the object within the bucket.
  • Essentially unlimited storage: S3 offers essentially unlimited storage that can hold millions of objects per bucket. You can store any type of data, including images, videos, and documents.
  • Public or private objects: You can set the access level for each object in S3. Objects can be public, which means that anyone with the object’s URL can access it, or private, which means that only authorized users can access it.
  • Various upload options: You can upload objects to S3 using the AWS Management Console, AWS CLI, or programmatically from within your application using AWS SDKs.
  • Large object support: The maximum object size that you can upload to S3 is five terabytes.

Here are some additional features of S3 that you may find useful:

  • Security: You can set security at the bucket level or individual object level using access control lists (ACLs), bucket policies, or access point policies. This allows you to control who can access your data.
  • Access logs: You can use S3 access logs to track access to your buckets and objects. This helps you monitor who is accessing your data and how they are using it.
  • Versioning: You can enable versioning for a bucket to create multiple versions of your files. This helps protect against accidental deletion and allows you to use a previous version if needed.
  • Bucket Names: S3 is a regional service, which means that data is stored in a specific geographic location. However, bucket names must be globally unique.

When it comes to data accessibility, two important factors to consider are durability and availability. Durability refers to the ability to prevent data loss or compromise, while availability refers to the ability to access data quickly when needed. S3 is designed to be highly durable and available, with the following levels of reliability:

  • Durability: Amazon S3 Standard is designed for 99.999999999% (11 9’s) of durability. This means that your objects are highly resilient and are unlikely to be lost or compromised.
  • Availability: Amazon S3 Standard is designed for 99.99% availability. This means that you can access your data quickly and reliably when you need it.

Amazon S3 Storage Classes: Understanding Your Options

When it comes to storing data in the cloud, Amazon S3 (Simple Storage Service) is a popular choice due to its high availability, durability, and scalability. However, Amazon S3 offers multiple storage classes to suit different data storage and retrieval needs. In this article, we will take a closer look at the different Amazon S3 storage classes and their features.

1. Amazon S3 Standard

Amazon S3 Standard is the default storage class for Amazon S3, designed for frequently accessed data. This storage class stores data in a minimum of three Availability Zones, providing high availability for objects. It is suitable for a wide range of use cases, such as websites, content distribution, and data analytics. However, Amazon S3 Standard has a higher cost than other storage classes intended for infrequently accessed data and archival storage.

2. Amazon S3 Standard-Infrequent Access (S3 Standard-IA)

Amazon S3 Standard-IA is ideal for data infrequently accessed but requires high availability when needed. This storage class is similar to Amazon S3 Standard but has a lower storage price and higher retrieval price. Both Amazon S3 Standard and Amazon S3 Standard-IA store data in a minimum of three Availability Zones, providing the same level of availability.

3. Amazon S3 One Zone-Infrequent Access (S3 One Zone-IA)

Compared to Amazon S3 Standard and Amazon S3 Standard-IA, which store data in a minimum of three Availability Zones, Amazon S3 One Zone-IA stores data in a single Availability Zone. This storage class has a lower storage price than Amazon S3 Standard-IA and is suitable if you want to save costs on storage and can easily reproduce your data in the event of an Availability Zone failure.

4. Amazon S3 Intelligent-Tiering

Amazon S3 Intelligent-Tiering is ideal for data with unknown or changing access patterns. This storage class monitors objects’ access patterns and automatically moves them to the infrequent access tier, Amazon S3 Standard-IA, if they haven’t been accessed for 30 consecutive days. If an object in the infrequent access tier is accessed, Amazon S3 automatically moves it to the frequent access tier, Amazon S3 Standard. This storage class requires a small monthly monitoring and automation fee per object.

5. Amazon S3 Glacier Instant Retrieval

If you need to store archived data that requires immediate access, Amazon S3 Glacier Instant Retrieval is the storage class to consider. You can retrieve objects stored in this storage class within milliseconds, with the same performance as Amazon S3 Standard.

6. Amazon S3 Glacier Flexible Retrieval

Amazon S3 Glacier Flexible Retrieval is a low-cost storage class that is ideal for data archiving. You can retrieve objects stored in this storage class within a few minutes to hours, making it suitable for archived customer records or older photos and video files.

7. Amazon S3 Glacier Deep Archive

Amazon S3 Deep Archive is the lowest-cost object storage class ideal for archiving. It supports long-term retention and digital preservation for data that might be accessed once or twice in a year. Data retrieval from this storage class takes from 12 to 48 hours, and all objects are replicated and stored across at least three geographically dispersed Availability Zones.

8. Amazon S3 Outposts

Amazon S3 Outposts delivers object storage to your on-premises AWS Outposts environment. This storage class creates S3 buckets on Amazon S3 Outposts, making it easier to retrieve, store, and access data on AWS Outposts. It works well for workloads with local data residency requirements that must satisfy demanding performance needs by keeping data close to on-premises applications.

Comparison of Durability, Availability, AZs, Latency and object capacity of S3 storage classes

2. Amazon Elastic Block Store (EBS)

EBS is a block-level storage device that can be attached to your instance. It is designed for quickly accessible data, running a database on an instance, and long-term data storage. The data persists when the instance is not running, but it is tied to one Availability Zone and can only be attached to one instance in the same Availability Zone.

3. EC2 Instance Store

The EC2 instance store is a local storage that is physically attached to the host computer and cannot be removed. The storage is temporary and faster with higher I/O speeds. It is the fastest option since no need to travel via any network. The data loss occurs when the EC2 instance is stopped. It is recommended for temporary storage needs and data replicated across multiple instances.

4. Amazon Elastic File System (EFS)

EFS is a serverless network file system for sharing files. It supports the Linux file system and is more expensive than EBS. It is accessible across different Availability Zones in the same Region. It is recommended for main directories for business-critical apps and lift-and-shift existing enterprise apps.

5. Storage Gateway

Storage Gateway is a hybrid storage service that connects on-premises and cloud data. It supports a hybrid model and is recommended for moving backups to the cloud, reducing costs for hybrid cloud storage, and low-latency access to data.

6. AWS Backup

AWS Backup helps you manage data backups across multiple AWS services. It integrates with resources like EC2, EBS, EFS, and more. You can create a backup plan that includes frequency and retention.

Conclusion

In conclusion, AWS provides a range of storage options to meet various use cases. Choosing the right storage option can significantly impact cost, performance, and data availability. Therefore, it’s essential to understand the features and capabilities of each storage option to choose the most suitable one for your business requirements.

Database Services

Databases are a crucial component of many modern applications. They allow developers to collect, store, retrieve, sort, graph, and manipulate data. In the AWS ecosystem, there are several types of databases that support different use cases. In this section, we will discuss the C section of AWS database services, which includes Amazon Relational Database Service (RDS), Amazon Aurora, Amazon DynamoDB, Amazon DocumentDB, Amazon ElastiCache, and Amazon Neptune.

1. Amazon Relational Database Service (RDS)

Amazon RDS is a service that makes it easy to launch and manage relational databases. It supports popular database engines like MySQL, PostgreSQL, Oracle, and SQL Server. With RDS, you can easily deploy a database with a few clicks in the AWS Management Console. It also offers high availability and fault tolerance using the Multi-AZ deployment option. AWS manages the database with automatic software patching, automated backups, operating system maintenance, and more. You can launch read replicas across Regions in order to provide enhanced performance and durability.

2. Amazon Aurora

Amazon Aurora is a relational database compatible with MySQL and PostgreSQL that was created by AWS. It is designed to be highly scalable, durable, and available. Aurora is 5x faster than normal MySQL and 3x faster than normal PostgreSQL. It scales automatically while providing durability and high availability. It supports MySQL and PostgreSQL database engines and is managed by RDS.

3. Amazon DynamoDB

Amazon DynamoDB is a fully managed NoSQL key-value and document database. It is designed to be fast, flexible, and scalable. DynamoDB is a non-relational database that can handle massive workloads and scales automatically. It is fully managed and serverless, which means you don’t have to worry about provisioning servers or managing infrastructure. DynamoDB is a great option for use cases that require low latency, high throughput, and flexible data models.

4. Amazon DocumentDB

Amazon DocumentDB is a fully managed document database that supports MongoDB. It is designed to be highly available, scalable, and durable. DocumentDB is a non-relational database that can handle massive workloads and scales automatically. It is fully managed and serverless, which means you don’t have to worry about provisioning servers or managing infrastructure. DocumentDB is MongoDB compatible and provides a familiar interface for developers who are already familiar with MongoDB.

5. Amazon ElastiCache

Amazon ElastiCache is a fully managed in-memory datastore compatible with Redis or Memcached. It is designed to be fast, scalable, and easy to use. ElastiCache is an in-memory datastore, which means that data is stored in RAM instead of on disk. This allows for high performance and low latency. However, data can be lost if there is a hardware failure or if the instance is terminated. ElastiCache is a great option for use cases that require low latency, high throughput, and caching.

6. Amazon Neptune

Amazon Neptune is a fully managed graph database that supports highly connected datasets. It is designed to be fast, reliable, and scalable. Neptune is a graph database service, which means that it can handle highly connected datasets like social media networks. It is fully managed and serverless, which means you don’t have to worry about provisioning servers or managing infrastructure. Neptune is a great option for use cases that require querying relationships between data points.

7. Amazon Quantum Ledger Database (Amazon QLDB)

Amazon Quantum Ledger Database (Amazon QLDB) is a ledger database service that provides an immutable, cryptographically verifiable transaction log. QLDB allows you to review a complete history of all the changes that have been made to your application data.

8. Amazon Managed Blockchain

Amazon Managed Blockchain is a service that you can use to create and manage blockchain networks with open-source frameworks. Blockchain is a distributed ledger system that lets multiple parties run transactions and share data without a central authority.

9. Amazon DynamoDB Accelerator

Amazon DynamoDB Accelerator (DAX) is an in-memory cache for DynamoDB. It helps improve response times from single-digit milliseconds to microseconds. DAX is a fully managed service that can be used to speed up DynamoDB performance.

Conclusion

AWS offers a wide range of database services to suit different use cases. From relational databases to non-relational databases and in-memory caches, AWS has a database service for every need. The managed services like RDS, DynamoDB, and DocumentDB allow developers to focus on building their applications rather than worrying about the underlying infrastructure. With the addition of blockchain and ledger databases, AWS is continuously expanding its database offerings to meet the evolving needs of modern applications.

Annnnnnnndddd… Part 3 is done. Hope you have enjoyed this article! 😁 Please like and follow if you did and if you have any questions, please leave a comment below. Cheers!! 🍻

References

--

--

Chamindu Udakara

Technical Lead, Full-stack Developer, Baseball player, Tech Enthusiast