Study Guide Terms - Terms First Flashcards
[Analytics] Amazon Athena
Definition - Interactive query service to analyze data directly in Amazon S3 using standard SQL.
Use Case - Serverless interactive SQL queries on Amazon S3 data.
[Analytics] Amazon Kinesis
Definition - Data stream service for rapid and continuous real time data intake and aggregation.
Use Case - Collection of accelerated, real time, and complex data into data streams for easier processing, analysis, and reporting.
[Analytics] Amazon OpenSearch Service
Definition - Managed service that makes it easy to deploy, operate, and scale OpenSearch clusters in the AWS Cloud. OpenSearch is an Apache-based search and analytics engine that uses the REST API for cluster interaction.
Use Case - Manage OpenSearch clusters to search data, analyze data, and monitor applications in real time.
[Application Integration] Amazon EventBridge (Amazon CloudWatch Events)
Definition - Serverless service that uses events to connect application components together, making it easier to build scalable event-driven applications.
Use Case - Routing of events between various services, applications, and APIs using buses, rules, and targets.
[Application Integration] Amazon Simple Notification Service (Amazon SNS)
Definition - Managed service that provides message delivery from publishers (producers) to subscribers (consumers). Publishers asynchronously send messages to a topic which subscribers can subscribe to.
Use Case - Publishing messages to be received by subscribers at a variety of endpoints, including other Amazon services, 3rd party services, and as emails, texts, or push notifications.
[Application Integration] Amazon Simple Queue Service (Amazon SQS)
Definition - Service offering a secure, durable, and available hosted queue for integrating and decoupling distributed software systems and components.
Use Case - Storage of messages in a queue with a generic web services API for easier programmatic access. Is often used as a subscriber endpoint for SNS messages.
[Application Integration] AWS AppSync
Definition - Connect applications and services to data and events with secure, serverless and high-performing GraphQL and Pub/Sub APIs.
Use Case - Create GraphQL API endpoints that can access data from many sources, merge multiple GraphQL APIs into one, and publish real time data updates to applications.
[Application Integration] AWS Step Functions
Definition - Serverless orchestration service for integrating with AWS Lambda functions and other AWS services to build business-critical applications. Event-driven steps are organized into a state machine, and lead to tasks which can call other AWS services or APIs.
Use Cases - Sequential functions that can be controlled and ordered to your needs, including orchestration, branching, error handling, and parallel processing.
[Compute] Amazon EC2
Definition - Service providing on-demand, scalable computing capacity in the AWS Cloud.
Use Case - Launch virtual servers/instances with high configurability and dynamic scalability. Requires a decent amount of setup and maintenance in exchange.
[Compute] AWS Elastic Beanstalk
Definition - Service helping with quick deployment and management of applications in the AWS Cloud. Automatically handles the details of capacity provisioning, load balancing, scaling, and application health monitoring.
Use Case - Transitioning an application to utilize the AWS Cloud with minimal code refactoring and no initial need to learn AWS infrastructure.
[Compute] AWS Lambda
Definition - Service that lets you run code without provisioning or managing servers. High-availability and optimization of the compute resources is built-in.
Use Case - Ideal for applications wanting to scale up rapidly and scale down to zero when not in use. Uses include data processing, web applications, and serverless backends. There is a 15 minute runtime/10 GB memory limit.
[Compute] AWS Serverless Application Model (AWS SAM)
Definition - A toolkit that improves the developer experience of building and running serverless applications on AWS. The two main parts are its template specification and its own CLI for building and running the applications.
Use Case - Creation of serverless applications using syntax built on and extending AWS CloudFormation, allowing for easy infrastructure definition and subsequent automatic provisioning.
[Containers] Amazon Elastic Container Registry (Amazon ECR)
Definition - AWS managed container image registry service that is secure, scalable, and reliable. Supports private repositories with resource-based permissions using AWS IAM.
Use Case - Storage of container images for easier access control and lifecycle management.
[Containers] Amazon Elastic Container Service (Amazon ECS)
Definition - Fully managed container orchestration service that helps you easily deploy, manage, and scale containerized applications. There are three main parts - Provisioning (developer tools), Controller (scheduler), and Capacity (container infrastructure).
Use Case - Deployment of applications which run in containers. Capacity can be in the form of AWS Fargate (serverless), Amazon EC2 instances, or on-premises VMs/servers.
[Containers] Amazon Elastic Kubernetes Services (Amazon EKS)
Definition - Managed service that you can use to run Kubernetes on AWS without needing to install, operate, and maintain your own Kubernetes control plane or nodes. Kubernetes is an open-source system for managing containerized applications.
Use Case - All sorts of Kubernetes work within AWS, from running, to scaling, and to integration with other AWS services and Kubernetes community tools.
[Containers] AWS Copilot
Definition - Provides a CLI with commands that simplify building, releasing, and operating production-ready containerized applications on Amazon ECS from a local development environment.
Use Case - Command line deployment of ECS applications.
[Database] Amazon Aurora
Definition - Fully managed relational database engine that’s compatible with MySQL and PostgreSQL and can be significantly faster with the right workload. Aurora is a part of Amazon RDS (one of the selectable DB engines).
Use Case - Primarily as a drop-in replacement for either MySQL or PostgreSQL, looking to provide speed and other common AWS benefits with minimal refactoring.
[Database] Amazon DynamoDB
Definition - Fully managed NoSQL database service that provides fast and predictable performance with seamless scalability. Lets you offload the administrative burdens of operating and scaling a distributed database.
Use Case - NoSQL database that is easy to manage and scale up or down whenever needed. The database is highly available, durable, and configurable.
[Database] Amazon ElastiCache
Definition - Web service that makes it easy to set up, manage, and scale a distributed in-memory data store or cache environment in the cloud. Works with both the Redis and Memcached engines.
Use Case - Caching service; Memcached is best for simple models, large multicore nodes, dynamic scaling, and object caching. There are a variety of “for Redis” versions with different specializations.
[Database] Amazon RDS
Definition - Web service that makes it easier to set up, operate, and scale a relational database in the AWS Cloud. AWS is responsible for most management tasks, allowing you to focus on optimizing your application.
Use Case - Allows for database setup with a variety of engines, classes (computation + memory capacity), and storage.
[Database] MemoryDB for Redis
Definition - Durable, in-memory database service that delivers ultra-fast performance. It is purpose-built for modern applications with microservices architectures.
Use Case - Ideal for workloads requiring an ultra-fast primary database. Works well with Redis and can replace a database + cache system to lower complexity and cost.
[Developer Tools] Amazon CodeGuru
Definition - Suite of services that use machine learning to help with a variety of coding aspects.
Use Case - Use machine learning to help optimize your code by detecting issues and offering recommendations on the aspects of security, performance, and defect avoidance.
[Developer Tools] Amazon CodeGuru Profiler
Definition - Service that uses machine learning to collect runtime performance data from live applications and provide recommendations that can help you fine-tune your application performance. Can also help you find your most expensive lines of code and suggest ways you can improve efficiency and remove CPU bottlenecks.
[Developer Tools] Amazon CodeGuru Reviewer
Definition - Service that uses machine learning to detect potential defects that are difficult for developers to find and offers suggestions for improving your Java and Python code.