From 8a11b137f9a37e3f0de80398cded89baf558f5a5 Mon Sep 17 00:00:00 2001 From: aman Date: Tue, 31 Oct 2023 23:40:15 +0530 Subject: [PATCH 1/6] add info about AWS AppSync --- README.md | 2 +- sections/other_aws_services.md | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3c9d9a0..8fa6edf 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ Each Section contains a number of units. **Below Table Link** containing informa - [Advanced Identity](sections/advanced_identity.md) - AWS STS (SecurityToken Service), Amazon Cognito (simplified), What is Microsoft Active Directory (AD)?, AWS Single Sign-On (SSO) - [Other AWS Services](sections/other_aws_services.md) - - Amazon WorkSpaces, Amazon AppStream 2.0, Amazon Sumerian, AWS IoT Core, Amazon Elastic Transcoder, AWS Device Farm, AWS Backup, AWS Elastic Disaster Recovery (DRS), AWS DataSync, AWS Fault Injection Simulator (FIS) + - Amazon WorkSpaces, Amazon AppStream 2.0, Amazon Sumerian, AWS IoT Core, Amazon Elastic Transcoder, AWS AppSync, AWS Device Farm, AWS Backup, AWS Elastic Disaster Recovery (DRS), AWS DataSync, AWS Fault Injection Simulator (FIS) - [AWS Architecting & Ecosystem](sections/architecting_and_ecosystem.md) - Well Architected Framework General Guiding Principles, AWS Cloud Best Practices - Design Principles, Well Architected Framework 6 Pillars, AWS Well-Architected Tool, AWS Right Sizing, AWS Ecosystem - Free resources, AWS Marketplace diff --git a/sections/other_aws_services.md b/sections/other_aws_services.md index 2274b8b..6e51fce 100644 --- a/sections/other_aws_services.md +++ b/sections/other_aws_services.md @@ -6,6 +6,7 @@ - [Amazon Sumerian](#amazon-sumerian) - [AWS IoT Core](#aws-iot-core) - [Amazon Elastic Transcoder](#amazon-elastic-transcoder) + - [AWS AppSync](#aws-appsync) - [AWS Device Farm](#aws-device-farm) - [AWS Backup](#aws-backup) - [AWS Elastic Disaster Recovery (DRS)](#aws-elastic-disaster-recovery-drs) @@ -57,6 +58,17 @@ - Cost effective – duration-based pricing model - Fully managed & secure, pay for what you use +## AWS AppSync + +- Store and sync data across mobile and web apps in real-time +- Makes use of GraphOL (mobile technology from Facebook) +- Client Code can be generated automatically +- Integrations with DynamoDB / Lambda +- Real-time subscriptions +- Offline data synchronization (replaces Cognito Sync) +- Fine Grained Security +- AWS Amplify can leverage AWS AppSync in the background! + ## AWS Device Farm - Fully-managed service that tests your web and mobile apps against desktop browsers, real mobile devices, and tablets From 0bf3f11d92092c67de91dbb7510c5c36c8c2f633 Mon Sep 17 00:00:00 2001 From: aman Date: Tue, 31 Oct 2023 23:48:42 +0530 Subject: [PATCH 2/6] add info about AWS Amplify --- README.md | 2 +- sections/other_aws_services.md | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8fa6edf..45f8b9a 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ Each Section contains a number of units. **Below Table Link** containing informa - [Advanced Identity](sections/advanced_identity.md) - AWS STS (SecurityToken Service), Amazon Cognito (simplified), What is Microsoft Active Directory (AD)?, AWS Single Sign-On (SSO) - [Other AWS Services](sections/other_aws_services.md) - - Amazon WorkSpaces, Amazon AppStream 2.0, Amazon Sumerian, AWS IoT Core, Amazon Elastic Transcoder, AWS AppSync, AWS Device Farm, AWS Backup, AWS Elastic Disaster Recovery (DRS), AWS DataSync, AWS Fault Injection Simulator (FIS) + - Amazon WorkSpaces, Amazon AppStream 2.0, Amazon Sumerian, AWS IoT Core, Amazon Elastic Transcoder, AWS AppSync, AWS Amplify, AWS Device Farm, AWS Backup, AWS Elastic Disaster Recovery (DRS), AWS DataSync, AWS Fault Injection Simulator (FIS) - [AWS Architecting & Ecosystem](sections/architecting_and_ecosystem.md) - Well Architected Framework General Guiding Principles, AWS Cloud Best Practices - Design Principles, Well Architected Framework 6 Pillars, AWS Well-Architected Tool, AWS Right Sizing, AWS Ecosystem - Free resources, AWS Marketplace diff --git a/sections/other_aws_services.md b/sections/other_aws_services.md index 6e51fce..8153be0 100644 --- a/sections/other_aws_services.md +++ b/sections/other_aws_services.md @@ -7,6 +7,7 @@ - [AWS IoT Core](#aws-iot-core) - [Amazon Elastic Transcoder](#amazon-elastic-transcoder) - [AWS AppSync](#aws-appsync) + - [AWS Amplify](#aws-amplify) - [AWS Device Farm](#aws-device-farm) - [AWS Backup](#aws-backup) - [AWS Elastic Disaster Recovery (DRS)](#aws-elastic-disaster-recovery-drs) @@ -69,6 +70,25 @@ - Fine Grained Security - AWS Amplify can leverage AWS AppSync in the background! +## AWS Amplify + +- A set of tools and services that helps you develop and deploy scalable full stack web and mobile applications + +- It offers following features: + - Backend-as-a-Service (BaaS) + - Frontend Libraries and UI Components + - Authentication + - Storage + - API Management (REST, GraphQL) + - Real-Time and Offline Capabilities through AWS AppSync + - CI/CD + - Command-Line Interface (CLI) + - PubSub + - Analytics + - AI/ML Predictions + - Monitoring + - Source Code from AWS, GitHub, etc. + ## AWS Device Farm - Fully-managed service that tests your web and mobile apps against desktop browsers, real mobile devices, and tablets From 7b09174216c5488a09966f5ba1785b839da75df9 Mon Sep 17 00:00:00 2001 From: aman Date: Wed, 1 Nov 2023 00:05:44 +0530 Subject: [PATCH 3/6] add info about migration services --- README.md | 2 +- sections/other_aws_services.md | 40 ++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 45f8b9a..7fb66fd 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ Each Section contains a number of units. **Below Table Link** containing informa - [Advanced Identity](sections/advanced_identity.md) - AWS STS (SecurityToken Service), Amazon Cognito (simplified), What is Microsoft Active Directory (AD)?, AWS Single Sign-On (SSO) - [Other AWS Services](sections/other_aws_services.md) - - Amazon WorkSpaces, Amazon AppStream 2.0, Amazon Sumerian, AWS IoT Core, Amazon Elastic Transcoder, AWS AppSync, AWS Amplify, AWS Device Farm, AWS Backup, AWS Elastic Disaster Recovery (DRS), AWS DataSync, AWS Fault Injection Simulator (FIS) + - Amazon WorkSpaces, Amazon AppStream 2.0, Amazon Sumerian, AWS IoT Core, Amazon Elastic Transcoder, AWS AppSync, AWS Amplify, AWS Device Farm, AWS Backup, AWS Elastic Disaster Recovery (DRS), AWS DataSync, AWS Application Discovery Service, AWS Application Migration Service (MGN), AWS Migration Evaluator, AWS Migration Hub, AWS Fault Injection Simulator (FIS) - [AWS Architecting & Ecosystem](sections/architecting_and_ecosystem.md) - Well Architected Framework General Guiding Principles, AWS Cloud Best Practices - Design Principles, Well Architected Framework 6 Pillars, AWS Well-Architected Tool, AWS Right Sizing, AWS Ecosystem - Free resources, AWS Marketplace diff --git a/sections/other_aws_services.md b/sections/other_aws_services.md index 8153be0..7652ab7 100644 --- a/sections/other_aws_services.md +++ b/sections/other_aws_services.md @@ -12,6 +12,10 @@ - [AWS Backup](#aws-backup) - [AWS Elastic Disaster Recovery (DRS)](#aws-elastic-disaster-recovery-drs) - [AWS DataSync](#aws-datasync) + - [AWS Application Discovery Service](#aws-application-discovery-service) + - [AWS Application Migration Service (MGN)](#aws-application-migration-service-mgn) + - [AWS Migration Evaluator](#aws-migration-evaluator) + - [AWS Migration Hub](#aws-migration-hub) - [AWS Fault Injection Simulator (FIS)](#aws-fault-injection-simulator-fis) ## Amazon WorkSpaces @@ -118,6 +122,42 @@ - Replication tasks can be scheduled hourly, daily, weekly - The replication tasks are incremental after the first full load +## AWS Application Discovery Service + +- Plan migration projects by gathering information about on-premises data centers +- Server utilization data and dependency mapping are important for migrations +- Agentless Discovery (AWS Agentless Discovery Connector) + - VM inventory, configuration, and performance history such as CPU, memory, and disk usage +- Agent-based Discovery (AWS Application Discovery Agent) + - System configuration, system performance, running processes, and details of the network connections between systems +- Resulting data can be viewed within AWS Migration Hub + +## AWS Application Migration Service (MGN) + +- *The “AWS evolution” of CloudEndure Migration, replacing AWS Server Migration Service (SMS)* +- Lift-and-shift (rehost) solution which simplify migrating applications to AWS +- Converts your physical, virtual, and cloud-based servers to run natively on AWS +- Supports wide range of platforms, Operating Systems, and databases +- Minimal downtime, reduced costs + +## AWS Migration Evaluator + +- Helps you build a data-driven business case for migration to AWS +- Provides a clear baseline of what your organization is running today +- Install Agentless Collector to conduct broad-based discovery +- Take a snapshot of on-premises foot-print, server dependencies,... +- Analyze current state, define target state, then develop migration plan + +## AWS Migration Hub + +- Central location to collect servers and applications inventory data for the +assessment, planning, and tracking of migrations to AWS +- Helps accelerate your migration to AWS, automate lift-and-shift +- **AWS Migration Hub Orchestrator** - provides pre-built templates to save time and +effort migrating enterprise apps (e.g., SAP Microsoft SQL Server...) +- Supports migrations status updates from Application Migration Service (MGN) +and Database Migration Service (DMS) + ## AWS Fault Injection Simulator (FIS) - A fully managed service for running fault injection experiments on AWS workloads From b41cfba0f19926141b694dee0bd6c3ce7d341c7c Mon Sep 17 00:00:00 2001 From: aman Date: Wed, 1 Nov 2023 00:24:40 +0530 Subject: [PATCH 4/6] add info about AWS Step Functions --- README.md | 2 +- images/step_functions.png | Bin 0 -> 37332 bytes sections/other_aws_services.md | 11 +++++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 images/step_functions.png diff --git a/README.md b/README.md index 7fb66fd..3e24fb4 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ Each Section contains a number of units. **Below Table Link** containing informa - [Advanced Identity](sections/advanced_identity.md) - AWS STS (SecurityToken Service), Amazon Cognito (simplified), What is Microsoft Active Directory (AD)?, AWS Single Sign-On (SSO) - [Other AWS Services](sections/other_aws_services.md) - - Amazon WorkSpaces, Amazon AppStream 2.0, Amazon Sumerian, AWS IoT Core, Amazon Elastic Transcoder, AWS AppSync, AWS Amplify, AWS Device Farm, AWS Backup, AWS Elastic Disaster Recovery (DRS), AWS DataSync, AWS Application Discovery Service, AWS Application Migration Service (MGN), AWS Migration Evaluator, AWS Migration Hub, AWS Fault Injection Simulator (FIS) + - Amazon WorkSpaces, Amazon AppStream 2.0, Amazon Sumerian, AWS IoT Core, Amazon Elastic Transcoder, AWS AppSync, AWS Amplify, AWS Device Farm, AWS Backup, AWS Elastic Disaster Recovery (DRS), AWS DataSync, AWS Application Discovery Service, AWS Application Migration Service (MGN), AWS Migration Evaluator, AWS Migration Hub, AWS Fault Injection Simulator (FIS), AWS Step Functions - [AWS Architecting & Ecosystem](sections/architecting_and_ecosystem.md) - Well Architected Framework General Guiding Principles, AWS Cloud Best Practices - Design Principles, Well Architected Framework 6 Pillars, AWS Well-Architected Tool, AWS Right Sizing, AWS Ecosystem - Free resources, AWS Marketplace diff --git a/images/step_functions.png b/images/step_functions.png new file mode 100644 index 0000000000000000000000000000000000000000..a84902f3275bf8e084de459abfe9f7d594001fcc GIT binary patch literal 37332 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%0DhP6RHL9e>!xwQFj)Jp1sEGEu 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 Xiq2)^)BE; literal 0 HcmV?d00001 diff --git a/sections/other_aws_services.md b/sections/other_aws_services.md index 7652ab7..e5ba06d 100644 --- a/sections/other_aws_services.md +++ b/sections/other_aws_services.md @@ -17,6 +17,7 @@ - [AWS Migration Evaluator](#aws-migration-evaluator) - [AWS Migration Hub](#aws-migration-hub) - [AWS Fault Injection Simulator (FIS)](#aws-fault-injection-simulator-fis) + - [AWS Step Functions](#aws-step-functions) ## Amazon WorkSpaces @@ -166,6 +167,16 @@ and Database Migration Service (DMS) - Supports the following AWS services: EC2, ECS, EKS, RDS… - Use pre-built templates that generate the desired disruptions +## AWS Step Functions + +- Build serverless visual workflow to orchestrate your Lambda functions +- Features: sequence, parallel, conditions, timeouts, error handling, etc. +- Can integrate with EC2, ECS, On-premises servers, API Gateway, SQS queues, etc. +- Possibility of implementing human approval feature +- Use cases: order fulfillment, data processing, web applications, any workflow + + + * * * [ Advanced Identity](./advanced_identity.md)           [ List](../README.md)           [AWS Architecting & Ecosystem ](./architecting_and_ecosystem.md) From 8e956f1fe0fa6da493a44a3704d9fc5861bb41a6 Mon Sep 17 00:00:00 2001 From: aman Date: Wed, 1 Nov 2023 00:28:22 +0530 Subject: [PATCH 5/6] add info about AWS Ground Station --- README.md | 2 +- sections/other_aws_services.md | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3e24fb4..11e91fc 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ Each Section contains a number of units. **Below Table Link** containing informa - [Advanced Identity](sections/advanced_identity.md) - AWS STS (SecurityToken Service), Amazon Cognito (simplified), What is Microsoft Active Directory (AD)?, AWS Single Sign-On (SSO) - [Other AWS Services](sections/other_aws_services.md) - - Amazon WorkSpaces, Amazon AppStream 2.0, Amazon Sumerian, AWS IoT Core, Amazon Elastic Transcoder, AWS AppSync, AWS Amplify, AWS Device Farm, AWS Backup, AWS Elastic Disaster Recovery (DRS), AWS DataSync, AWS Application Discovery Service, AWS Application Migration Service (MGN), AWS Migration Evaluator, AWS Migration Hub, AWS Fault Injection Simulator (FIS), AWS Step Functions + - Amazon WorkSpaces, Amazon AppStream 2.0, Amazon Sumerian, AWS IoT Core, Amazon Elastic Transcoder, AWS AppSync, AWS Amplify, AWS Device Farm, AWS Backup, AWS Elastic Disaster Recovery (DRS), AWS DataSync, AWS Application Discovery Service, AWS Application Migration Service (MGN), AWS Migration Evaluator, AWS Migration Hub, AWS Fault Injection Simulator (FIS), AWS Step Functions, AWS Ground Station - [AWS Architecting & Ecosystem](sections/architecting_and_ecosystem.md) - Well Architected Framework General Guiding Principles, AWS Cloud Best Practices - Design Principles, Well Architected Framework 6 Pillars, AWS Well-Architected Tool, AWS Right Sizing, AWS Ecosystem - Free resources, AWS Marketplace diff --git a/sections/other_aws_services.md b/sections/other_aws_services.md index e5ba06d..81b6990 100644 --- a/sections/other_aws_services.md +++ b/sections/other_aws_services.md @@ -18,6 +18,7 @@ - [AWS Migration Hub](#aws-migration-hub) - [AWS Fault Injection Simulator (FIS)](#aws-fault-injection-simulator-fis) - [AWS Step Functions](#aws-step-functions) + - [AWS Ground Station](#aws-ground-station) ## Amazon WorkSpaces @@ -177,6 +178,14 @@ and Database Migration Service (DMS) +## AWS Ground Station + +- Fully managed service that lets you control satellite communications, process data, and scale your satellite operations +- Provides a global network of satellite ground stations near AWS regions +- Allows you to download satellite data to your AWS VPC within seconds +- Send satellite data to S3 or EC2 instance +- Use cases: weather forecasting, surface imaging, communications, video broadcasts + * * * [ Advanced Identity](./advanced_identity.md)           [ List](../README.md)           [AWS Architecting & Ecosystem ](./architecting_and_ecosystem.md) From 26041eb1454ac83cd0dc479de787a45c654d8f01 Mon Sep 17 00:00:00 2001 From: aman Date: Wed, 1 Nov 2023 00:33:52 +0530 Subject: [PATCH 6/6] add info about AWS Pinpoint --- README.md | 2 +- sections/other_aws_services.md | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 11e91fc..9fcd399 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ Each Section contains a number of units. **Below Table Link** containing informa - [Advanced Identity](sections/advanced_identity.md) - AWS STS (SecurityToken Service), Amazon Cognito (simplified), What is Microsoft Active Directory (AD)?, AWS Single Sign-On (SSO) - [Other AWS Services](sections/other_aws_services.md) - - Amazon WorkSpaces, Amazon AppStream 2.0, Amazon Sumerian, AWS IoT Core, Amazon Elastic Transcoder, AWS AppSync, AWS Amplify, AWS Device Farm, AWS Backup, AWS Elastic Disaster Recovery (DRS), AWS DataSync, AWS Application Discovery Service, AWS Application Migration Service (MGN), AWS Migration Evaluator, AWS Migration Hub, AWS Fault Injection Simulator (FIS), AWS Step Functions, AWS Ground Station + - Amazon WorkSpaces, Amazon AppStream 2.0, Amazon Sumerian, AWS IoT Core, Amazon Elastic Transcoder, AWS AppSync, AWS Amplify, AWS Device Farm, AWS Backup, AWS Elastic Disaster Recovery (DRS), AWS DataSync, AWS Application Discovery Service, AWS Application Migration Service (MGN), AWS Migration Evaluator, AWS Migration Hub, AWS Fault Injection Simulator (FIS), AWS Step Functions, AWS Ground Station, AWS Pinpoint - [AWS Architecting & Ecosystem](sections/architecting_and_ecosystem.md) - Well Architected Framework General Guiding Principles, AWS Cloud Best Practices - Design Principles, Well Architected Framework 6 Pillars, AWS Well-Architected Tool, AWS Right Sizing, AWS Ecosystem - Free resources, AWS Marketplace diff --git a/sections/other_aws_services.md b/sections/other_aws_services.md index 81b6990..e498f27 100644 --- a/sections/other_aws_services.md +++ b/sections/other_aws_services.md @@ -19,6 +19,7 @@ - [AWS Fault Injection Simulator (FIS)](#aws-fault-injection-simulator-fis) - [AWS Step Functions](#aws-step-functions) - [AWS Ground Station](#aws-ground-station) + - [AWS Pinpoint](#aws-pinpoint) ## Amazon WorkSpaces @@ -186,6 +187,18 @@ and Database Migration Service (DMS) - Send satellite data to S3 or EC2 instance - Use cases: weather forecasting, surface imaging, communications, video broadcasts +## AWS Pinpoint + +- Scalable 2-way (outbound/inbound) marketing communications service +- Supports email, SMS, push, voice, and in-app messaging +- Ability to segment and personalize messages with the right content to customers +- Possibility to receive replies +- Scales to billions of messages per day +- Use cases: run campaigns by sending marketing, bulk, transactional SMS messages +- Versus **Amazon SNS or Amazon SES** + - In SNS & SES, you managed each message's audience, content, and delivery schedule + - In Amazon Pinpoint, you create message templates, delivery schedules, highly-targeted segments, and full campaigns + * * * [ Advanced Identity](./advanced_identity.md)           [ List](../README.md)           [AWS Architecting & Ecosystem ](./architecting_and_ecosystem.md)