AWS Services
https://docs.aws.amazon.com/index.html
Migration
- AWS Application Discovery Service - Discover On-Premises Applications to Streamline Migration
- AWS Database Migration Service - Migrate Databases with Minimal Downtime
- AWS Migration Hub - Track Migrations from a Single Place
- AWS Server Migration Service - Migrate On-Premises Servers to AWS
- AWS Snowball - Petabyte-scale Data Transport
- AWS Snowball Edge - Petabyte-scale Data Transport with On-board Compute
- AWS Snowmobile - Exabyte-scale Data Transport
- AWS Application Migration Service
Management Tools
1. Amazon CloudWatch
Monitor Resources and Applications
https://github.com/monitoringartist/grafana-aws-cloudwatch-dashboards
Cloudwatch search queries
-Select -query
-QUERY -READ -WRITE
-server -lms_p2021030122 -sttashrdsmain -vishal_goyal -rdsadmin -deepak_sood -api-v2_p2021030121 -loan-tape-etl_c2021030122
Logs Insight
fields *@timestamp*, *@message*
| sort *@timestamp* desc
| limit 20
fields *@timestamp*, *@message* | filter *@message* like /(?i)(connect)/ # | filter @timestamp > 1668527666 | fields tomillis(*@timestamp*) as millis # | filter @millis < 1668566034 | parse *@message* ',*,*,' as @instance,@user | parse *@message* /(?<@ip>d{1,3}.d{1,3}.d{1,3}.d{1,3})/ | stats count() AS counter by @user | sort by @counter desc | limit 100
3 categories of logs
- Vended logs - natively published by AWS services on behalf of the customer
- Logs published by AWS services
- Custom logs
CloudWatch billing and cost - Amazon CloudWatch
Publish custom metrics - Amazon CloudWatch
Amazon CloudWatch Application Insights
Amazon CloudWatch Application Insights - Amazon CloudWatch
Cost Optimizing
Determine which log group is causing a bill increase | AWS re:Post
Optimizing Amazon CloudWatch Costs in Under 5 Minutes (Step-by-Step Guide) - YouTube
Reduce and prevent charges in Amazon CloudWatch | AWS re:Post
Composite Alarms
Combining alarms - Amazon CloudWatch
CW composite alert to create complex alert. We can use operators like OR, AND and NOT. For example, if we want to trigger an alert when both CPU and DiskReadOnly breach their thresholds, we would need to create a composite alert. This involves using two metrics with an AND operator to ensure that both conditions are met before triggering the alert.
ALARM("django-slave-2-alarm-CPU-80%") OR
ALARM("learn-dbread-alarm-CPU-80%") OR
ALARM("django-prod-slave1-alarm-CPU-80%") OR
ALARM("prod-django-master-alarm-CPU-80%")
2. AWS Auto Scaling
Scale Multiple Resources to Meet Demand
3. AWS CloudFormation
Create and Manage Resources with Templates
AWS CloudFormation provides a common language for you to model and provision AWS and third party application resources in your cloud environment. AWS CloudFormation allows you to use programming languages or a simple text file to model and provision, in an automated and secure manner, all the resources needed for your applications across all regions and accounts. This gives you a single source of truth for your AWS and third party resources.
Others
- AWS CloudTrail - Track User Activity and API Usage
- AWS Config - Track Resource Inventory and Changes
- AWS OpsWorks - Automate Operations with Chef and Puppet
- AWS Service Catalog - Create and Use Standardized Products
- AWS Systems Manager - Gain Operational Insights and Take Action
- AWS Trusted Advisor - Optimize costs, improve performance, and address security gaps
- How do I start using Trusted Advisor? - YouTube
- Minimum spend of $29.00 or 3% of monthly AWS charges, whichever is higher
- AWS Personal Health Dashboard - Personalized View of AWS Service Health
Media Services
- Amazon Elastic Transcoder - Easy-to-use Scalable Media Transcoding
- Amazon Kinesis Video Streams - Process and Analyze Video Streams
- AWS Elemental MediaConvert - Convert File-based Video Content
- AWS Elemental MediaLive - Convert Live Video Content
- AWS Elemental MediaPackage - Video Origination and Packaging
- AWS Elemental MediaStore - Media Storage and Simple HTTP Origin
- AWS Elemental MediaTailor - Video Personalization and Monetization
Machine Learning
- Amazon SageMaker - Build, Train, and Deploy Machine Learning Models at Scale
- Amazon Comprehend - Discover Insights and Relationships in Text
- Amazon Lex - Build Voice and Text Chatbots
- Amazon Polly - Turn Text into Lifelike Speech
- Amazon Rekognition - Analyze Image and Video
- Amazon Machine Learning - Machine Learning for Developers
- Amazon Translate - Natural and Fluent Language Translation
- Amazon Transcribe - Automatic Speech Recognition
- AWS DeepLens - Deep Learning Enabled Video Camera
- AWS Deep Learning AMIs - Quickly Start Deep Learning on EC2
- Apache MXNet on AWS - Scalable, High-performance Deep Learning
- TensorFlow on AWS - Open-source Machine Intelligence Library
- Amazon Textract - Easily extract printed text, handwriting, and data from virtually any document - https://github.com/aws-samples/amazon-textract-code-samples/tree/master/python
- Amazon Kendra
- AWS Fraud Detector
Highly accurate intelligent search service powered by machine learning
- Quickly implement a unified search experience across multiple structured and unstructured content repositories.
- Use natural language processing (NLP) to get highly accurate answers without the need for machine learning (ML) expertise.
- Fine-tune your search results based on content attributes, freshness, user behavior, and more.
- Deliver ML-powered instant answers, FAQs, and document ranking as a fully managed service.
Mobile Services
- AWS Mobile Hub - Build, Test, and Monitor Apps
- Amazon API Gateway - Build, Deploy, and Manage APIs
- Amazon API Gateway Pricing: 6 Tips to Control the Cost
- Right type of API gateway - REST APIs vs HTTP APIs
- API Gateway integration feature
- Cognito authentication
- Replace API Gateway with ALB (Application Load Balancer)
- Reduce unnecessary API calls
- Reduce data transfer costs
- Choose between REST APIs and HTTP APIs - Amazon API Gateway
- REST APIs and HTTP APIs are both RESTful API products. REST APIs support more features than HTTP APIs, while HTTP APIs are designed with minimal features so that they can be offered at a lower price. Choose REST APIs if you need features such as API keys, per-client throttling, request validation, AWS WAF integration, or private API endpoints. Choose HTTP APIs if you don't need the features included with REST APIs.
- HTTP APIs - $1.05 vs REST APIs - $3.50
- Amazon API Gateway Pricing: 6 Tips to Control the Cost
- Amazon Pinpoint - Push Notifications for Mobile Apps
- AWS AppSync - Real-time and Offline Mobile Data Apps
- AWS Device Farm - Test Android, FireOS, and iOS Apps on Real Devices in the Cloud
- AWS Mobile SDK - Mobile Software Development Kit
- AWS Location Service
- AR & VR - Amazon Sumerian - Build and Run VR and AR Applications
AWS Amplify
Amplify UI - Build UI fast with Amplify on React
Amplify Documentation - AWS Amplify Documentation
To serve traffic, Amplify Hosting points to a CloudFront URL via a CNAME record. In the process of connecting an app to a custom domain, the Amplify console displays the CloudFront URL for the app. However, you cannot access your application directly using this CloudFront URL. It returns a 404 error. Your application resolves only using the Amplify app URL (for example, https://main.d5udybEXAMPLE.amplifyapp.com
, or your custom domain (for example www.example.com
).
Troubleshooting custom domains - AWS Amplify Hosting
Build settings
frontend:
phases:
build:
commands:
- if [ "${AWS_BRANCH}" = "main" ]; then npm run build; fi
- if [ "${AWS_BRANCH}" = "dev" ]; then npm run dev; fi
Configuring build settings - AWS Amplify Hosting
Application Integeration
1. AWS Step Functions
Coordinate Distributed Applications
AWS Step Functions is a serverless function orchestrator that makes it easy to sequence AWS Lambda functions and multiple AWS services into business-critical applications. Through its visual interface, you can create and run a series of checkpointed and event-driven workflows that maintain the application state.The output of one step acts as an input to the next. Each step in your application executes in order, as defined by your business logic.
Orchestrating a series of individual serverless applications, managing retries, and debugging failures can be challenging. As your distributed applications become more complex, the complexity of managing them also grows. Step Functions automatically manages error handling, retry logic, and state.With its built-in operational controls, Step Functions manages sequencing, error handling, retry logic, and state, removing a significant operational burden from your team.
2. Amazon Simple Queue Service (SQS) - Managed Message Queues
3. Amazon Simple Notification Service (SNS)
Pub/Sub, Mobile Push and SMS
Amazon Simple Notification Service (SNS) is a highly available, durable, secure, fully managed pub/sub messaging service that enables you to decouple microservices, distributed systems, and serverless applications. Amazon SNS provides topics for high-throughput, push-based, many-to-many messaging. Using Amazon SNS topics, your publisher systems can fan out messages to a large number of subscriber endpoints for parallel processing, including Amazon SQS queues, AWS Lambda functions, and HTTP/S webhooks. Additionally, SNS can be used to fan out notifications to end users using mobile push, SMS, and email.
4. Amazon MQ
Managed Message Broker for ActiveMQ
Amazon MQ is a managed message broker service for Apache ActiveMQ that makes it easy to set up and operate message brokers in the cloud. Message brokers allow different software systems--often using different programming languages, and on different platforms--to communicate and exchange information. Amazon MQ reduces your operational load by managing the provisioning, setup, and maintenance of ActiveMQ, a popular open-source message broker. Connecting your current applications to Amazon MQ is easy because it uses industry-standard APIs and protocols for messaging, including JMS, NMS, AMQP, STOMP, MQTT, and WebSocket. Using standards means that in most cases, there's no need to rewrite any messaging code when you migrate to AWS.
5. Amazon Eventbridge
Amazon EventBridge is a serverless event bus that makes it easy to connect applications together using data from your own applications, integrated Software-as-a-Service (SaaS) applications, and AWS services. EventBridge delivers a stream of real-time data from event sources, such as Zendesk, Datadog, or Pagerduty, and routes that data to targets like AWS Lambda. You can set up routing rules to determine where to send your data to build application architectures that react in real time to all of your data sources. EventBridge makes it easy to build event-driven applications because it takes care of event ingestion and delivery, security, authorization, and error handling for you.
Schema Registry - Now in Preview:As your applications become more interconnected through events, you need to spend more effort in finding events and understanding their structure in order to write code to react to those events. The Amazon EventBridge schema registry stores event structure - or schema - in a shared central location and maps those schemas to code for Java, Python, and Typescript so it's easy to use events as objects in your code. Schema from your event bus can be automatically added to the registry through the schema discovery feature. You can connect to and interact with the schema registry from the AWS Management Console, APIs, or the SDK Toolkits for Jetbrains (Intellij, PyCharm, Webstorm, Rider) and VS Code.
https://aws.amazon.com/eventbridge
Amazon EventBridge Scheduler
Amazon EventBridge Scheduler is a serverless scheduler that allows you to create, run, and manage tasks from one central, managed service. Highly scalable, EventBridge Scheduler allows you to schedule millions of tasks that can invoke more than 270 AWS services and over 6,000 API operations. Without the need to provision and manage infrastructure, or integrate with multiple services, EventBridge Scheduler provides you with the ability to deliver schedules at scale and reduce maintenance costs.
EventBridge Scheduler delivers your tasks reliably, with built-in mechanisms that adjust your schedules based on the availability of downstream targets. With EventBridge Scheduler, you can create schedules using cron and rate expressions for recurring patterns, or configure one-time invocations. You can set up flexible time windows for delivery, define retry limits, and set the maximum retention time for failed triggers.
Key features of EventBridge Scheduler
EventBridge Scheduler offers the following key features that you can use to configure targets and scale your schedules.
- Templated targets - EventBridge Scheduler supports templated targets to perform common API operations using Amazon SQS, Amazon SNS, Lambda, and EventBridge. With predefined targets, you can configure your schedules quickly using the EventBridge Scheduler console, the EventBridge Scheduler SDK, or the AWS CLI.
- Universal targets - EventBridge Scheduler provides a universal target parameter (UTP) that you can use to create customized triggers that target more than 270 AWS services and over 6,000 API operations on a schedule. With UTP, you can configure your customized triggers using the EventBridge Scheduler console, the EventBridge Scheduler SDK, or the AWS CLI.
- Flexible time windows - EventBridge Scheduler supports flexible time windows, allowing you to disperse your schedules and improve the reliability of your triggers for use cases that do not require precise scheduled invocation of targets.
- Retries - EventBridge Scheduler provides at-least-once event delivery to targets, meaning that at least one delivery succeeds with a response from the target. EventBridge Scheduler allows you to set the number of retries for your schedule for a failed task. EventBridge Scheduler retries failed tasks with delayed attempts to improve the reliability of your schedule and ensure targets are available.
Introducing Amazon EventBridge Scheduler | AWS Compute Blog
What is Amazon EventBridge Scheduler? - EventBridge Scheduler
Customer Engagement
- Amazon Connect - Cloud-based Contact Center
- Amazon Pinpoint - Push Notifications for Mobile Apps
- Amazon Simple Email Service (SES) - Email Sending and Receiving
Business Productivity
1. Alexa for Business - Empower your Organization with Alexa
2. Amazon Chime
Frustation-free Meetings, Video Calls, and Chat
Amazon Chime is a communications service that lets you meet, chat, and place business calls inside and outside your organization, all using a single application. Developers can use the same communications infrastructure and services that power Amazon Chime, and add audio calling, video calling, and screen sharing capabilities directly to their applications using the Amazon Chime SDK.
Amazon Chime Voice Connector is a service that enables enterprises to migrate their telephony workloads to AWS. IT professionals can use Voice Connector for low-cost SIP trunking from on-premises or cloud-based phone systems. Voice Connector supports inbound calling, outbound calling, or both. Developers can also use Voice Connector to build PSTN calling in their own applications using the Amazon Chime SDK or stream audio for phone call analytics and machine learning.
3. Amazon WorkDocs - Enterprise Storage and Sharing Service
4. Amazon WorkMail - Secure and Managed Business Email and Calendaring
Desktop & App Streaming
- Amazon WorkSpaces - Desktop Computing Service
- Amazon AppStream 2.0 - Stream Desktop Applications Securely to a Browser
Internet of Things
- AWS IoT Core - Connect Devices to the Cloud
- Amazon FreeRTOS - IoT Operating System for Microcontrollers
- AWS Greengrass - Local Compute, Messaging, and Sync for Devices
- AWS IoT 1-Click - One Click Creation of an AWS Lambda Trigger
- AWS IoT Analytics - Analytics for IoT Devices
- AWS IoT Button - Cloud Programmable Dash Button
- AWS IoT Device Defender - Security Management for IoT Devices
- AWS IoT Device Management - Onboard, Organize, and Remotely Manage IoT Devices
Game Development
- Amazon GameLift - Simple, Fast, Cost-effective Dedicated Game Server Hosting
- Amazon Lumberyard - A Free Cross-Platform 3D Game Engine with Full Source, Integrated with AWS and Twitch
Others
Distributed Load Testing on AWS
Amazon Web Services (AWS) offers customers a scalable, distributed, and serverless architecture to deliver a load testing tool for web application performance testing. The Distributed Load Testing on AWS solution automatically launches and configures containers running on AWS Fargate to help you easily create and simulate thousands of connected users generating a select number of transactions per second without having to provision servers. This solution delivers application performance monitoring, which will help you understand how your application will perform at scale and at expected load, identifying bottlenecks before you release your application.
https://aws.amazon.com/solutions/implementations/distributed-load-testing-on-aws
https://aws.amazon.com/about-aws/whats-new/2020/10/introducing-distributed-load-testing-v1-1