What are the least used AWS services

AWS BASICS

At AWS, choice means being able to choose the service that most closely matches the processing load. With more than 175 services spread across over two dozen categories, AWS has the widest range of services. Achieving performance through selection means being able to choose the right tool for the task at hand.

A typical processing load typically requires choosing from some of the four main AWS service categories: Compute, Storage, Database, and Network.

  • Data processing describes the service that will process the data (e.g. virtual machine)
  • Storage describes the static storage of data (e.g. object storage)
  • Database describes the organized storage of data (e.g. relational database)
  • Network describes how the data moves (e.g. content delivery network)

In this module we will look at how to make the right choice in the first three categories. Please refer to the section More reading with guides on how to choose the various network options.

Regardless of the service category you choose, there are three things to keep in mind.

  1. Service type
  2. Degree of management
  3. configuration

Service type

When you make a selection in a category, AWS offers many options for the type of service available. The type is unique for each category.

Make a decision when choosing one Data processing-Service, whether you prefer computing based on VM, container or serverless.

  • VM-based computing is the most common mental model for most people, but it can be more expensive and maintenance-intensive
  • Container-based computing allows the workload to be divided more precisely and can be scaled quickly, but it does add configuration and orchestration complexity
  • Serverless computing abstracts away most of the administrative and scaling complexity, but has hard system boundaries and requires the introduction of new toolchains and processes

Make a decision when choosing one Storage-Service, whether you need a file store, block store, object store, or archive store.

  • Block storage services like EBS are particularly useful for holding data from a single EC2 instance
  • File systems like EFS are particularly suitable for giving multiple clients access to the same data
  • Object stores like S3 are particularly suitable for large amounts of data that need to be accessed by a large number of clients
  • Archive stores such as S3 Glacier are particularly suitable for large amounts of data that only need to be accessed occasionally

Make a decision when choosing one DatabaseService, whether you need a relational database, a non-relational database, a data warehouse solution, or a data indexing and search solution.

  • Relational databases allow joins and ACID properties, but have an upper limit on performance and data storage
  • Non-relational databases have more flexible schemas and are much more scalable than their relational counterparts, but they typically do not have joins and full ACID capabilities
  • Data warehouse solutions enable large-scale analyzes through quick access to structured data in the petabyte range
  • Data indexing and search solutions enable you to index and search for data from a wide variety of sources

Degree of management

Once you have decided on a type of service, you need to limit yourself to a specific service. In some cases, AWS offers multiple solutions for specific types of services. The main difference between different AWS services of the same type is the degree of management.

If you Data processing-Services and decide on the VM type, you have to choose between EC2, Lightsail and Elastic Beanstalk. With EC2, you have the most control and the least administration right away, whereas Lightsail allows you to make certain customizations for a much more managed solution. Elastic Beanstalk is in between - it provides a binding framework for the service architecture, but can be adapted through configurations.

If you StorageUsing services, it is easier to select a service, as there is usually only one service for a certain type (e.g. S3 for object storage, EFS for file storage).

If you DatabaseUsing services and opting for the relational type, you'll need to choose between RDS and Aurora. RDS gives you more control over the underlying database and is available for most relational databases. Aurora only supports certain versions of MySQL and PostgreSQL, but takes care of the management of the underlying storage and has built-in clustering support.

Ultimately, choosing a particular service largely depends on whether you are familiar with the underlying technology and whether you prefer a more or less managed solution.

 

configuration

Once you've decided on a service, you need to decide how you want to configure it. The configuration depends on the specific features you want to achieve and which are different for each service category.

To determine the performance characteristics for Data processing-Services, it is advisable to first consider the storage and data processing requirements:

  • If you use VM-based computing, memory and CPU are determined by the size of the instance (e.g. t3.small vs. t3.xlarge) and the instance family (e.g. r3.small vs. c5.small ) influences
  • If you use the container-based data processing, the memory and CPU can be set individually
  • If you use serverless computing, only the memory can be set directly - the computing value (as well as other system resources) increases linearly with the amount of available memory

Note that depending on the processing load, there are additional resource constraints that may be relevant to you, such as network capacity and the availability of certain resources such as the instance store.

To determine the performance characteristics for Storage-Services you should consider your latency, throughput and IOPS requirements:

  • When using a block storage service
    • the latency is influenced by the selection of the volume type (e.g. solid-state drive vs. hard drive)
    • the throughput for most volume types is proportional to the volume size
    • For most volume types, the IOPS capacity is proportional to the volume size
  • When using a file system service
    • Latency and IOPS are affected by the choice of performance modes
    • the throughput is influenced by the decision to use the provided throughput
  • When using an object store
    • The latency is influenced by the geographic distance to the bucket endpoint
    • the throughput is influenced by the use of throughput-optimized APIs such as multi-part uploads
    • IOPS is not configurable
  • When using archive storage
    • Latency is affected by the geographic distance to the bucket endpoint and the choice of retrieval method
    • the throughput is influenced by the use of throughput-optimized APIs such as multi-part uploads
    • IOPS is not configurable

To determine the performance characteristics for Database-Services you should consider the resource requirements (e.g. CPU, memory, storage, etc.):

  • When using a relational database
    • the resource capacities are determined by the choice of the EC2 instance
  • When using a non-relational database such as DynamoDB
  • When using a data warehouse solution such as Redshift
    • Resource capacities are determined by the choice of the underlying EC2 instance
  • When using an indexing solution such as Elasticsearch Service
    • the resource capacities are determined by the choice of the EC2 instance

 

findings

  • AWS offers many services and ways to achieve a goal
  • Implementing a processing load for AWS requires selecting services from among the compute, storage, database, and network services
  • Within each category you can select the appropriate service type depending on the application
  • Within each type, you can select the specific service based on the degree of management you want
  • Within each service, you can choose the specific configuration based on the specific features you want to achieve

More reading