SES SQS SNS RDS EC2 S3 Cloudfront Lambda - sgml/signature GitHub Wiki
- https://docs.aws.amazon.com/general/latest/gr/glos-chap.html
- https://stackoverflow.com/questions/51149679/
- https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
- https://serverless-stack.com/chapters/what-is-an-arn.html
- https://aws.amazon.com/answers/networking/aws-multiple-region-multi-vpc-connectivity/
- https://livebook.manning.com/book/serverless-architectures-on-aws/chapter-2/108
- https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-options.html
- https://docs.aws.amazon.com/pdfs/prescriptive-guidance/latest/resilience-lifecycle-framework/resilience-lifecycle-framework.pdf
- https://aws.amazon.com/prescriptive-guidance/?apg-all-cards.sort-by=item.additionalFields.sortDate&apg-all-cards.sort-order=desc&awsf.apg-new-filter=*all&awsf.apg-content-type-filter=*all&awsf.apg-code-filter=code-repo%23true&awsf.apg-category-filter=categories%23migration&awsf.apg-rtype-filter=*all&awsf.apg-isv-filter=*all&awsf.apg-product-filter=*all&awsf.apg-env-filter=*all&awsm.page-apg-all-cards=1
+----------------------+ +----------------------+
| Client Request | | API Gateway |
| (HTTP POST/GET) | | (REST or HTTP API) |
+----------+-----------+ +----------+-----------+
| |
+-----------+-------------+
|
v
+----------------------+
| Lambda |
| (Ephemeral Runtime) |
+----------+-----------+
|
+------------------+------------------+
| |
v v
+------------------+ +------------------------+
| Check /tmp/sqlite| | Recreate SQLite DB |
| exists? | | (if missing or stale) |
+--------+---------+ +-----------+------------+
| |
v v
+------------------------+ +------------------------+
| Write/Read to SQLite |<--------| Init schema + tables |
| in /tmp/sqlite.db | | (CREATE TABLE etc.) |
+------------------------+ +------------------------+
|
v
+------------------------+
| Return response to |
| API Gateway |
+------------------------+
|
v
+------------------------+
| Response to Client |
+------------------------+
| AWS Service | Spring MVC Equivalent |
|------------------------|------------------------------------|
| EC2 Instance | Application Host / Tomcat Server |
| RDS (e.g., MySQL) | Spring Data JPA + MySQL |
| EFS | Shared File Storage (e.g., NFS) |
| VPC | Network Boundary / DMZ |
| Subnets | Deployment Zones / Availability |
| ELB (Load Balancer) | Reverse Proxy / DispatcherServlet |
| Security Groups | Firewall Rules / Access Filters |
| IAM Roles | Spring Security Roles |
| CloudWatch | Actuator + Logging Frameworks |
| Elastic Beanstalk | Spring Boot Deployment Automation |
- https://status.cloud.google.com/
- https://status.cloud.microsoft/
- https://health.aws.amazon.com/health/status
-
Both OLAP and OLTP systems typically use structured data, organized in tables with rows and columns. Data warehouses also rely heavily on structured data to facilitate complex queries and reporting.
-
Data warehouses and OLAP systems often use a schema-on-write approach, where the schema is defined before data is written, ensuring data consistency and integrity.
-
Data warehouses, OLAP systems, and data lakes often use ETL (Extract, Transform, Load) processes to integrate data from various sources. This ensures that data is cleaned, transformed, and loaded into the target system in a consistent format¹.
-
Data warehouses, OLAP systems, and data lakes serve as centralized repositories for large volumes of data, enabling efficient data management and retrieval².
-
Object stores and data lakes are designed to handle massive amounts of data, providing scalable storage solutions that can grow with the organization's needs³.
-
All these systems implement access controls to ensure that only authorized users can access or modify the data. This is crucial for maintaining data security and compliance¹.
-
While each system has its unique features and use cases, these similarities in schema design help ensure that data is organized, integrated, stored, accessed, and secured efficiently across different platforms.
- https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-app-retirement-best-practices/welcome.html
- https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-retiring-applications/welcome.html
- https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-retiring-applications/apg-gloss.html
- https://docs.aws.amazon.com/prescriptive-guidance/latest/red-hat-openshift-on-aws-implementation/introduction.html
- https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone.html
- https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html
- https://docs.aws.amazon.com/resource-explorer/latest/userguide/using-search-query-syntax.html?icmpid=docs_console_unmapped
- https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_AnalyzeLogData_LogsInsights.html
- https://docs.aws.amazon.com/config/latest/developerguide/querying-AWS-resources.html
- https://learn.microsoft.com/en-us/azure/architecture/patterns/
- https://docs.aws.amazon.com/solutions/latest/constructs/welcome.html
- https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html
- https://github.com/aws-samples/step-functions-workflows-collection/blob/main/saga-pattern-sam/template.yaml
- https://docs.aws.amazon.com/whitepapers/latest/aws-serverless-data-analytics-pipeline/logical-architecture-of-modern-data-lake-centric-analytics-platforms.html
- https://docs.aws.amazon.com/wellarchitected/latest/analytics-lens/best-practice-6.2-understand-the-business-requirements-of-analytics-and-etl-jobs..html
- https://www.redbooks.ibm.com/redbooks/pdfs/sg248275.pdf
- https://www.redhat.com/architect/topics/architecture-patterns
- https://github.com/awslabs/aws-solutions-constructs/tree/main/source/patterns/
- https://aws.amazon.com/blogs/compute/implementing-aws-lambda-error-handling-patterns/
- https://catalog.workshops.aws/auto-incident-response/en-US/3-configure-response/3-2-step-functions-response/teststepfunctions
- https://cloudvisor.co/aws-guides/aws-secrets-manager/
- https://lifesciences-resources.awscloud.com/aws-storage-blog/failover-microsoft-azure-workloads-to-aws-using-aws-elastic-disaster-recovery
- https://aws.amazon.com/blogs/architecture/disaster-recovery-dr-architecture-on-aws-part-i-strategies-for-recovery-in-the-cloud/
- https://aws.amazon.com/blogs/architecture/creating-a-multi-region-application-with-aws-services-part-1-compute-and-security/
- https://aws.amazon.com/blogs/apn/making-application-failover-seamless-by-failing-over-your-private-virtual-ip-across-availability-zones/
- https://aws.amazon.com/blogs/architecture/implementing-multi-region-disaster-recovery-using-event-driven-architecture/
- https://www.reddit.com/r/aws/comments/rbrkzg/post_aws_outage_what_changes_do_you_plan_to_make/?rdt=59130
- https://aws.amazon.com/certification/certified-cloud-practitioner/?ch=sec&sec=rmg&d=1
- https://support.aws.amazon.com/#/contacts/aws-training
- https://render.skillbuilder.aws/cds/7eddf12a-92fc-4fbe-83d7-3080e98d7c12/assets/AWS%20Exam%20Preparation%20Official%20Practice%20Exam%20Instructions.pdf
- https://render.skillbuilder.aws/cds/0278d404-f311-422d-b724-48f395e2bf02/assets/AWS%20Exam%20Preparation%20Official%20Practice%20Question%20Sets%20Overview%20and%20Instructions.pdf
- https://render.skillbuilder.aws/cds/eb4b0c2d-021f-4613-b1b1-1752dc191e87/assets/AWS-Certified-Cloud-Practitioner_Exam-Guide_C02.pdf
- https://render.skillbuilder.aws/cds/eb4b0c2d-021f-4613-b1b1-1752dc191e87/assets/AWS%20Certified%20Cloud%20Practitioner%20%28CLF-C02%29%20Reference%20Guide%20v.%201.1.pdf
- https://render.skillbuilder.aws/cds/4c8238bc-69d8-45e6-9c53-14f97087ae70/assets/Overview%20and%20Instructions-%20Official%20Pretest.pdf
- https://cp.certmetrics.com/amazon/en/home/requirements
- https://www.pearsonvue.com/us/en/aws/onvue.html
- NIST Special Publication 800-63B
- NIST Special Publication (SP) 800-204, Security Strategies for Microservices-based Application Systems
- +glossary site:aws.amazon.com +blogs +category
- https://github.com/aws/aws-sdk-js-v3/blob/main/codegen/sdk-codegen/aws-models/application-insights.json
- https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html
- https://aws.amazon.com/training/learn-about/data-analytics/
- https://learn.microsoft.com/en-us/training/
- https://cloud.google.com/learn/training
- https://states-language.net/
- https://docs.aws.amazon.com/step-functions/latest/dg/concepts-error-handling.html
- https://github.com/search?q=ErrorEquals+catch+task+language%3AYML+awslabs&type=code
- https://aws.amazon.com/blogs/compute/category/application-services/aws-step-functions/page/12/
- https://github.com/aws-samples/the-aws-step-functions-workshop/tree/mainline
- https://github.com/search?q=%22In+the+Step+Functions+console%22+tools+language%3AMarkdown&type=code
- https://github.com/aws-samples/aws-stepfunctions-examples/blob/main/sam/app-local-testing-mock-config/README.md
- https://catalog.workshops.aws/auto-incident-response/en-US/3-configure-response/3-2-step-functions-response/teststepfunctions
- https://github.com/serverless-heaven/serverless-aws-alias/issues/101
- https://forum.serverless.com/t/unclear-how-to-reference-lambda-role-arn-in-serverless-yml/1147/3
- https://github.com/serverless/serverless/issues/2579
- https://www.thelambdablog.com/running-a-lambda-on-a-schedule-using-eventbridge-cron-and-rate-expressions/
- https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-timer
- https://cloud.google.com/scheduler/docs/creating
- https://docs.aws.amazon.com/pdfs/scheduler/latest/APIReference/eventbridge-scheduler-api.pdf.pdf
- https://github.com/webdav-serverless/webdav-serverless
+-------------------+ +-------------------+ +-------------------+ | | | | | | | EventBridge | | Lambda Function | | API Gateway | | (Cron Job) | | | | | | | | | | | | +------------+ | | +------------+ | | +------------+ | | | | | | | | | | | | | | | Schedule | | | | Execute | | | | Receive | | | | Expression | | | | Business | | | | HTTP | | | | (e.g., | | | | Logic | | | | Request | | | | "cron(0 | | | | | | | | | | | | * * * ?") | | | | | | | | | | | | | | | | | | | | | | | +------------+ | | +------------+ | | +------------+ | | | | | | | +-------------------+ +-------------------+ +-------------------+
- https://docs.aws.amazon.com/pdfs/wellarchitected/latest/analytics-lens/analytics-lens.pdf
- https://www.txdot.gov/content/dam/docs/str/cat-data/what-are-the-challenges-of-cat-data.pdf
- https://www.medicaid.pr.gov/pdf/2024-PRMP-HIE-001/SecureHIT/Attachment%20G%20-%20Response%20to%20SOW.pdf
[Job Postings] -----> [Data Extraction] -----> [Technology Mapping] | | V V [Company Websites] -----> [Entity Resolution] -----> [Normalization] | | V V [API Sources] -----> [Daily Quality Assurance] -----> [Dataset Updates] | | V V [User Access] <----- [Historical Records] <----- [Verification]
- https://aws.amazon.com/rds/postgresql/pricing/
- https://news.ycombinator.com/item?id=17601455
- https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/view-billing-dashboard.html
- https://aws.amazon.com/blogs/mt/introducing-service-quotas-view-and-manage-your-quotas-for-aws-services-from-one-central-location/
- https://aws.amazon.com/premiumsupport/knowledge-center/stop-future-free-tier-charges/
- https://www.manufacturing.net/cybersecurity/blog/22860859/benefits-and-security-challenges-of-a-multitenant-cloud
Goal | Tool/Method | Notes |
---|---|---|
YAML syntax validation | yamllint |
Fast, local YAML linting |
Validate Route 53 DNS records |
aws route53 , Route 53 Console
|
List, test, and monitor hosted zones and records |
CloudFormation template validation | cfn-lint |
Simulates EB backend template parsing |
- https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-api-permissions-reference.html
- https://blog.richardkeller.net/anatomy-of-a-serverless-yaml-file/
- https://stackoverflow.com/questions/57700391/how-to-share-an-authorizer-between-templates-without-hitting-limit-of-authorizer
- https://dev.to/dvddpl/a-couple-of-tips-about-writing-and-debugging-serverless-cloudformation-configs-pj7
- https://docs.aws.amazon.com/lambda/latest/dg/python-tracing.html
- https://docs.aws.amazon.com/lambda/latest/operatorguide/execution-environments.html
- https://dzone.com/articles/java-apps-aws-lambda
- https://conermurphy.com/blog/pre-warming-lambda-functions-eventbridge-rules
- https://docs.aws.amazon.com/lambda/latest/dg/provisioned-concurrency.html
- https://devops.stackexchange.com/questions/255/how-to-performance-test-aws-lambda-functions
- https://serverless.zone/my-accidental-3-5x-speed-increase-of-aws-lambda-functions-6d95351197f3
- https://blog.cloudflare.com/serverless-performance-with-cpu-bound-tasks/
- https://dashbird.io/blog/exploring-lambda-limitations/
- https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html
- https://serverless.com/blog/keep-your-lambdas-warm/
testing_serverless_code:
options:
- name: OpenFaaS
url: https://www.openfaas.com
description: This open-source platform allows you to build, deploy, and test serverless functions using Docker containers. It works seamlessly on Windows.
- name: VirtualBox
url: https://www.virtualbox.org
description: Create a Linux virtual machine to emulate your production environment and test your serverless code.
- name: VMware
url: https://www.vmware.com
description: Create a Linux virtual machine to emulate your production environment and test your serverless code.
- name: LocalStack
url: https://localstack.cloud
description: Emulates a complete cloud stack locally, allowing you to run and test various cloud services on your Windows machine.
- name: Fn Project
url: https://fnproject.io
description: An open-source container-native serverless platform that can be run locally using Docker. It supports multiple languages and offers a flexible runtime.
- https://wiki.owasp.org/index.php/OWASP_Cloud_Testing_Guide
- https://owasp.org/www-project-cloud-native-application-security-top-10/
- https://medium.com/@reginald.johnson/testing-aws-lambda-functions-the-easy-way-41cf1ed8c090
- https://serverless.com/blog/serverless-local-development/
- https://serverless.com/framework/docs/providers/aws/cli-reference/invoke-local/
- https://www.jeremydaly.com/developing-serverless-applications-locally-with-the-serverless-cloudside-plugin/
- https://github.com/localstack/serverless-localstack
- https://github.com/motdotla/node-lambda
- https://serverless-stack.com/chapters/invoke-lambda-functions-locally.html
- https://stackoverflow.com/questions/34629574/can-bash-script-be-written-inside-a-aws-lambda-function
- https://stackoverflow.com/questions/34196043/are-there-any-emulator-for-aws-lambda
- https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-options.html
- https://docs.aws.amazon.com/en_en/cli/latest/userguide/cli-chap-troubleshooting.html
- https://russell.ballestrini.net/working-with-botocores-awsconfig/
- https://www.simplified.guide/aws/cli-configure-multiple-profiles
- https://forums.aws.amazon.com/thread.jspa?messageID=883208&tstart=0
- https://docs.aws.amazon.com/cli/latest/topic/return-codes.html
- https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/AWSMPCAPIReference.pdf
- https://docs.developer.amazonservices.com/en_UK/dev_guide/DG_ResponseFormat.html
- https://docs.aws.amazon.com/AWSECommerceService/latest/DG/Locales.html
- https://webservices.amazon.com/paapi5/documentation/use-cases/search-with-external-identifiers.html
- https://docs.aws.amazon.com/AWSECommerceService/latest/DG/ErrorMessages.html
- https://docs.aws.amazon.com/AWSECommerceService/latest/DG/UsingXML.html
- https://docs.aws.amazon.com/AWSECommerceService/latest/DG/TroubleshootingApplications.html#efficiency-guidelines
- https://aws.amazon.com/premiumsupport/knowledge-center/route-53-mx-record-smtp-no-email/
- https://www.nccoe.nist.gov/sites/default/files/legacy-files/dns-secure-email-sp1800-6-draft.pdf
- https://dk-systems.com/wp-content/uploads/2019/05/notes.pdf
- https://www.slideshare.net/rinnocente/towards-authenticatedemail-tls-spf-dkim-dmarc
- https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/CommonErrors.html
- https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-api-responses.html
- https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-creating-custom-policies-access-policy-examples.html
- https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-automating-troubleshooting.html
- https://boto3.amazonaws.com/v1/documentation/api/latest/guide/sqs.html
- https://boto3.amazonaws.com/v1/documentation/api/latest/guide/sqs-example-sending-receiving-msgs.html
- https://docs.aws.amazon.com/cli/latest/reference/sqs/send-message.html
- https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/working-with-messages.html
- https://stackoverflow.com/questions/51596709/sqs-triggers-lambda-with-multiple-records-messages
- https://github.com/mParticle/mparticle-python-sdk/wiki/SQS-Upload
- https://stackoverflow.com/questions/32567062/how-to-send-a-json-file-to-amazon-sqs-queue-using-boto
- https://dev.to/piczmar_0/aws-lambda-sqs-events-with-serverless-framework-oj6
- https://www.slideshare.net/AmazonWebServices/speed-and-reliability-at-any-scale-amazon-sqs-and-database-services-svc206-aws-reinvent-2013-28430970
- https://www.red-gate.com/simple-talk/cloud/cloud-development/combining-amazon-aurora-lambda-and-sqs-to-go-beyond-the-native-capabilities-of-mysql/
- https://faculty.washington.edu/wlloyd/courses/tcss562/tutorials/TCSS562_f2021_tutorial_6.pdf
- https://github.com/s3lite/s3lite
- https://aws.amazon.com/blogs/storage/querying-data-without-servers-or-databases-using-amazon-s3-select/
- https://community.aws/content/2qULNt9xcZ9iFU5iemhRY7KVRSm/introduction-to-graphql-with-appsync-and-dynamodb
- https://docs.aws.amazon.com/code-library/latest/ug/python_3_dynamodb_code_examples.html
- https://aws.amazon.com/blogs/compute/maintaining-a-healthy-email-database-with-aws-lambda-amazon-sns-and-amazon-dynamodb/
- https://docs.aws.amazon.com/whitepapers/latest/reactive-systems-on-aws/service-introduction.html
- https://github.com/awslabs/amazon-dynamodb-lock-client
- https://aws.amazon.com/blogs/database/building-distributed-locks-with-the-dynamodb-lock-client/
Use Case | Description |
---|---|
Session Management | Storing temporary user sessions with TTL for automatic expiration. |
Caching Layer | Using DynamoDB Accelerator (DAX) for low-latency caching. |
Event-Driven Data | Holding transient event logs or messages before processing in AWS Lambda or Kinesis. |
Temporary Analytics | Storing short-lived analytical data for real-time dashboards or streaming insights. |
Job Queues | Managing ephemeral task queues for distributed processing or serverless workflows. |
User Profiles | Storing persistent user data for authentication and personalization. |
Product Catalogs | Managing structured product information for e-commerce platforms. |
Financial Transactions | Keeping records of purchases, payments, and account balances. |
IoT Data Storage | Retaining sensor data for analytics and historical tracking. |
Gaming State Management | Storing player progress, inventory, and leaderboard data. |
Audit Logs | Maintaining compliance-related logs for security and tracking. |
- https://aws.amazon.com/blogs/messaging-and-targeting/email-authenctication-dmarc-policy/
- https://coderwall.com/p/3vqf2g/send-emails-via-amazon-ses-with-bash-and-curl
- https://docs.aws.amazon.com/ses/latest/DeveloperGuide/query-interface-responses.html
- https://docs.aws.amazon.com/ses/latest/dg/troubleshoot-verification.html
- https://docs.aws.amazon.com/ses/latest/dg/troubleshoot-verification.html
- https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html
- https://docs.aws.amazon.com/ses/latest/dg/send-email-authentication-dkim-easy.html
- https://docs.aws.amazon.com/ses/latest/dg/send-email-authentication-dmarc.html
- https://aws.amazon.com/blogs/messaging-and-targeting/complying-with-dmarc-across-multiple-accounts-using-amazon-ses/
- https://docs.aws.amazon.com/ses/latest/dg/troubleshoot-dkim.html
- https://aws.amazon.com/blogs/messaging-and-targeting/guide-to-ip-and-domain-warming-and-migrating-to-amazon-ses/
- https://aws.amazon.com/blogs/messaging-and-targeting/navigate-bulk-sender-requirements-with-amazon-ses/
- https://aws.amazon.com/blogs/messaging-and-targeting/use-ai-agents-and-the-model-context-protocol-with-amazon-ses/
- https://stackoverflow.com/questions/35075632/how-to-send-email-only-once-in-a-distributed-system
- https://docs.aws.amazon.com/sns/latest/dg/channels-sms-awssupport-long-code.html
- https://aws.amazon.com/end-user-messaging/pricing/
- https://repost.aws/knowledge-center/sns-best-practices-global-sms-messaging
- https://docs.aws.amazon.com/cli/latest/reference/sns/
- https://matteoagius.medium.com/stop-abusing-dynamodb-transactions-leverage-idempotency-instead-6b30ae889c11
- https://qasimalbaqali.medium.com/achieving-idempotency-in-the-aws-serverless-space-d0671a521479
- https://docs.aws.amazon.com/ses/latest/dg/send-email-concepts-deliverability.html
- https://docs.aws.amazon.com/prescriptive-guidance/latest/terraform-aws-provider-best-practices/security.html
- https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-custom-policy-checks.html
- https://securityriskadvisors.com/blog/aws-iam-exploitation/
- https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html
- https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html
- https://docs.aws.amazon.com/pdfs/prescriptive-guidance/latest/strategy-cloud-operating-model/strategy-cloud-operating-model.pdf
(lambda-invoke-workflow
;; name: Secure Lambda Invocation
;; on:
;; workflow_dispatch:
(workflow
(name "Secure Lambda Invocation")
(trigger workflow_dispatch))
;; jobs:
;; invoke-lambda:
;; runs-on: ubuntu-latest
;; permissions:
;; id-token: write
;; contents: read
(job invoke-lambda
(runner ubuntu-latest)
(permissions
(id-token write)
(contents read))
;; steps:
;; - name: Configure AWS credentials via OIDC
;; uses: aws-actions/configure-aws-credentials@v2
;; with:
;; role-to-assume: arn:aws:iam::123456789012:role/GitHubOIDCRole
;; aws-region: us-west-2
(step configure-aws-credentials
(uses aws-actions/configure-aws-credentials@v2)
(with
(role-to-assume "arn:aws:iam::123456789012:role/GitHubOIDCRole")
(aws-region "us-west-2")))
;; - name: Invoke Lambda
;; run: |
;; aws lambda invoke \
;; --function-name my-lambda-function \
;; --payload '{"key": "value"}' \
;; response.json
;; cat response.json
(step invoke-lambda
(run
(aws lambda invoke
(function-name "my-lambda-function")
(payload "{\"key\": \"value\"}")
(output "response.json"))
(cat "response.json")))))
;; IAM Role Setup (for reference)
(iam-role GitHubOIDCRole
;; Trust Policy
;; {
;; "Version": "2012-10-17",
;; "Statement": [
;; {
;; "Effect": "Allow",
;; "Principal": {
;; "Federated": "arn:aws:iam::123456789012:oidc-provider/token.actions.githubusercontent.com"
;; },
;; "Action": "sts:AssumeRoleWithWebIdentity",
;; "Condition": {
;; "StringEquals": {
;; "token.actions.githubusercontent.com:aud": "sts.amazonaws.com",
;; "token.actions.githubusercontent.com:sub": "repo:your-org/your-repo:ref:refs/heads/main"
;; }
;; }
;; }
;; ]
;; }
(trust-policy
(principal
(federated "arn:aws:iam::123456789012:oidc-provider/token.actions.githubusercontent.com"))
(action sts:AssumeRoleWithWebIdentity)
(condition
(StringEquals
("aud" "sts.amazonaws.com")
("sub" "repo:your-org/your-repo:ref:refs/heads/main"))))
;; Permissions Policy
;; {
;; "Version": "2012-10-17",
;; "Statement": [
;; {
;; "Effect": "Allow",
;; "Action": "lambda:InvokeFunction",
;; "Resource": "arn:aws:lambda:us-west-2:123456789012:function:my-lambda-function"
;; }
;; ]
;; }
(permissions-policy
(action lambda:InvokeFunction)
(resource "arn:aws:lambda:us-west-2:123456789012:function:my-lambda-function")))
+-------------------------------------------------------------+
| VPC |
| |
| +-------------------+ +-------------------+ |
| | Public Subnet | | Private Subnet | |
| | (ELB, NAT GW) | | (EC2, RDS, EFS) | |
| +-------------------+ +-------------------+ |
| | | |
| | | |
| +-------------+ +------------------+ |
| | Elastic | | Elastic Beanstalk| |
| | Load Balancer| | EC2 Instances | |
| +-------------+ +------------------+ |
| | | |
| | | |
| +-------------------------------+ |
| | Security Group(s) | |
| | - ELB SG (ingress: 80/443) | |
| | - EC2 SG (ingress: from ELB) | |
| | - EFS SG (ingress: 2049) | |
| +-------------------------------+ |
| |
+-------------------------------------------------------------+
Relationship Breakdown:
-----------------------
VPC:
- Encloses all networking components and resources.
Subnets:
- Public Subnet: Hosts ELB and NAT Gateway.
- Private Subnet: Hosts EC2 (Beanstalk), RDS, and EFS.
Security Groups:
- ELB SG: Allows inbound HTTP/HTTPS traffic from the internet.
- EC2 SG: Allows inbound traffic from ELB SG.
- EFS SG: Allows NFS traffic (port 2049) from EC2 SG.
Elastic Beanstalk:
- Deploys EC2 instances into private subnets.
- Attaches EC2 SG and optionally mounts EFS volumes.
- Can configure ELB in public subnet to route traffic to EC2.
Elastic Load Balancer:
- Public-facing; forwards traffic to EC2 instances in private subnet.
- Associated with ELB SG.
EFS (optional):
- Mount targets created in private subnets.
- Secured via EFS SG allowing access from EC2 SG.
- https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html
- https://repost.aws/questions/QUhhaJ4kA6TTCtq1jHaRA-Ag/rate-limiting-in-aws-lambdas
- https://docs.aws.amazon.com/lambda/latest/dg/lambda-dg.pdf
- https://dev.to/aws-builders/how-to-automate-compliance-checks-with-aws-audit-manager-2f8n
- https://aws.amazon.com/blogs/architecture/rate-limiting-strategies-for-serverless-applications/
- https://www.codementor.io/@nadaj/how-i-learned-that-a-lambda-can-t-be-stopped-vyu3dp9dy
- https://9oelm.github.io/2019-03-17--deploying-a-serverless-crawler-with-python-+-lambda+dynamoDB/
- https://d1.awsstatic.com/events/reinvent/2019/REPEAT_1_Finding_a_home_for_your_data_in_your_serverless_app_SVS223-R1.pdf
- https://www.tutorialspoint.com/aws_lambda/aws_lambda_creating_and_deploying_using_serverless_framework.htm
- https://www.linkedin.com/pulse/accessing-postgresql-databases-from-aws-python-lambda-wang/
- https://aws.amazon.com/blogs/database/query-your-aws-database-from-your-serverless-application/
- http://blog.brianz.bz/post/serverless-how-to-handle-db-transactions/
- https://docs.aws.amazon.com/lambda/latest/dg/python-context.html
- https://stackoverflow.com/questions/44811982/xml-parsing-in-aws-lambda-function
- https://aws.amazon.com/blogs/compute/parallel-processing-in-python-with-aws-lambda/
- https://medium.com/@venetucci/a-bot-to-help-you-read-your-way-through-next-4-years-7ba9d80066fc
- https://github.com/aws/aws-cli/issues/602
- https://serverlesscode.com/post/aws-lambda-limitations/
- https://serverless.com/plugins/serverless-pseudo-parameters/
- https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/
- https://aws.amazon.com/blogs/database/modernize-your-legacy-databases-with-aws-data-lakes-part-1-migrate-sql-server-using-aws-dms/
- https://aws.amazon.com/blogs/database/migrate-or-upgrade-your-like-to-like-databases-using-aws-dms-homogeneous-migration/
<!-- Step 1: Clone Blue Database to Create Green Database -->
<xsl:template name="clone-database">
<xsl:param name="blueDatabase" />
<xsl:variable name="greenDatabase">
<xsl:copy-of select="$blueDatabase" />
</xsl:variable>
</xsl:template>
<!-- Step 2: Apply Schema Changes to Green Database -->
<xsl:template name="apply-schema-changes">
<xsl:param name="greenDatabase" />
<xsl:variable name="updatedGreenDatabase">
<!-- Define schema changes -->
<xsl:copy>
<!-- Add or modify tables, fields, etc. -->
<table name="NewTable">
<field name="NewField" type="varchar" />
</table>
</xsl:copy>
</xsl:variable>
</xsl:template>
<!-- Step 3: Validate and Test Green Database -->
<xsl:template name="validate-database">
<xsl:param name="greenDatabase" />
<xsl:choose>
<xsl:when test="validation($greenDatabase)">
<xsl:text>Validation Successful</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>Validation Failed</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- Step 4: Promote Green Database to Production -->
<xsl:template name="promote-to-production">
<xsl:param name="greenDatabase" />
<xsl:variable name="productionDatabase" select="$greenDatabase" />
</xsl:template>
<!-- Step 5: Monitor Green Database and Roll Back if Needed -->
<xsl:template name="monitor-and-rollback">
<xsl:param name="greenDatabase" />
<xsl:param name="blueDatabase" />
<xsl:choose>
<xsl:when test="monitor($greenDatabase) = 'issues_detected'">
<xsl:variable name="activeDatabase" select="$blueDatabase" />
<xsl:text>Rollback Completed</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>Migration Successful</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
stages:
- stage: "Upgrade from PostgreSQL 11 to PostgreSQL 12"
steps:
- step: "Preparation and Backup"
description: >
Identify the current production RDS instance (blue environment) running PostgreSQL 11 and take a snapshot for a reliable rollback option.
url: "https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_CommonTasks.BackupRestore.html"
- step: "Compatibility Review"
description: >
Review AWS documentation and PostgreSQL 12 release notes to confirm that your application, extensions, and configurations are supported.
url: "https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Upgrading.html"
- step: "Initiate Blue/Green Deployment"
description: >
Use the RDS Blue/Green Deployments feature to create a green environment that mirrors your current production (blue) instance.
url: "https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments-overview.html"
- step: "Apply Upgrade in Green Environment"
description: >
In the green environment, trigger the major engine upgrade from PostgreSQL 11 to PostgreSQL 12 and adjust parameter groups if necessary.
url: "https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Upgrading.html"
- step: "Testing and Validation"
description: >
Run functional, integration, and performance tests using AWS monitoring tools to validate that PostgreSQL 12 is operating as expected.
url: "https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.html"
- step: "Switchover to Production"
description: >
Execute the blue/green switchover to route production traffic to the upgraded PostgreSQL 12 (green) environment with minimal downtime.
url: "https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments-overview.html"
- stage: "Upgrade from PostgreSQL 12 to Latest Version"
steps:
- step: "Preparation and Snapshot"
description: >
With PostgreSQL 12 now in production, create a fresh snapshot to serve as a rollback baseline before initiating the next upgrade.
url: "https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_CommonTasks.BackupRestore.html"
- step: "Review New Version Compatibility"
description: >
Verify that your application and extensions are compatible with the latest PostgreSQL version by reviewing release notes and AWS documents.
url: "https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Upgrading.html"
- step: "Initiate Second Blue/Green Deployment"
description: >
Trigger a new blue/green deployment from the PostgreSQL 12 environment to create a fresh green environment for the upgrade.
url: "https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments-overview.html"
- step: "Apply Upgrade in the Second Green Environment"
description: >
Upgrade the green environment from PostgreSQL 12 to the latest PostgreSQL version available, updating parameter groups as required.
url: "https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Upgrading.html"
- step: "Comprehensive Testing"
description: >
Conduct comprehensive integration, functional, and performance tests to ensure the upgraded environment meets all operational requirements.
url: "https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html"
- step: "Final Switchover"
description: >
Complete the final switchover by routing production traffic to the green environment running the latest PostgreSQL version.
url: "https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments-overview.html"
- https://docs.aws.amazon.com/dms/latest/sbs/chap-manageddatabases.postgresql-rds-postgresql-full-load-pd_dump.html
- https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.Connecting.Python.html
- https://docs.aws.amazon.com/code-library/latest/ug/python_3_rds_code_examples.html
- https://aws.amazon.com/blogs/database/best-practices-for-migrating-postgresql-databases-to-amazon-rds-and-amazon-aurora/
- https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.TransportableDB.html
- https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.Messages.html#USER_Events.Messages.instance
- https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html
- https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html
- https://stackoverflow.com/questions/68407226/amazon-rds-how-can-i-limit-the-rds-instance-access-to-aws-lambda-functions-and
- https://aws.amazon.com/blogs/security/improve-security-of-amazon-rds-master-database-credentials-using-secrets-manager/
- https://docs.aws.amazon.com/AmazonRDS/latest/PostgreSQLReleaseNotes/postgresql-extensions.html
- https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL_pg_cron.html
- https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.Extensions.html
- https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/APITroubleshooting.html
- https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/APITroubleshooting.html
- https://aws.amazon.com/blogs/database/category/database/amazon-rds/rds-for-postgresql/
- https://aws.amazon.com/blogs/aws/automatic-restore-testing-and-validation-is-now-available-in-aws-backup/
- https://aws.amazon.com/blogs/database/implement-uuidv7-in-amazon-rds-for-postgresql-using-trusted-language-extensions/
- https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PostgreSQL.S3Import.html
- https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html
- https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/managing-users.html
- https://aws.amazon.com/premiumsupport/knowledge-center/system-reachability-check/
- https://www.portnox.com/cybersecurity-101/ssh-passwordless-login/
- https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/
def create_instance_from_ami_vpc(self, ami_id, key_name, instance_type='t2.micro'):
"""
Finds an existing instance launched from the given AMI ID,
retrieves its VPC ID, and launches a new instance in the same VPC.
:param ami_id: AMI ID to base the new instance on
:param key_name: Key pair name
:param instance_type: EC2 instance type
:return: New instance ID or None
"""
try:
# Step 1: Find an instance using the AMI
response = self.ec2_client.describe_instances(
Filters=[{'Name': 'image-id', 'Values': [ami_id]}]
)
reservations = response.get('Reservations', [])
if not reservations:
print(f"No instances found using AMI {ami_id}")
return None
instance = reservations[0]['Instances'][0]
vpc_id = instance['VpcId']
print(f"Found VPC ID {vpc_id} from instance {instance['InstanceId']}")
# Step 2: Find a subnet in that VPC
subnets = self.ec2_client.describe_subnets(
Filters=[{'Name': 'vpc-id', 'Values': [vpc_id]}]
)
subnet_id = subnets['Subnets'][0]['SubnetId']
# Step 3: Launch new instance
new_instance = self.ec2_client.run_instances(
ImageId=ami_id,
InstanceType=instance_type,
KeyName=key_name,
SubnetId=subnet_id,
MinCount=1,
MaxCount=1
)
new_instance_id = new_instance['Instances'][0]['InstanceId']
print(f"Launched new instance {new_instance_id} in VPC {vpc_id}")
return new_instance_id
except Exception as e:
print(f"Error creating instance from AMI VPC: {e}")
return None
import boto3
import subprocess
import os
from crontab import CronTab
class WordPressProvisioner:
def __init__(self, region="us-west-2", key_name="wordpress-key", secret_name="wordpress-ec2-key", notification_email="[email protected]"):
self.region = region
self.key_name = key_name
self.secret_name = secret_name
self.notification_email = notification_email
self.pem_content = None
self.instance_id = None
self.ec2 = boto3.client("ec2", region_name=self.region)
self.secrets = boto3.client("secretsmanager", region_name=self.region)
self.cloudwatch = boto3.client("cloudwatch", region_name=self.region)
self.sns = boto3.client("sns", region_name=self.region)
self.topic_arn = None
# Step 0: Create EC2 instance and store PEM + instance ID
def create_ec2_instance(self):
key_pair = self.ec2.create_key_pair(KeyName=self.key_name)
self.pem_content = key_pair["KeyMaterial"]
instance = self.ec2.run_instances(
ImageId="ami-0c55b159cbfafe1f0",
InstanceType="t2.micro",
KeyName=self.key_name,
MinCount=1,
MaxCount=1,
SecurityGroups=["default"]
)
self.instance_id = instance["Instances"][0]["InstanceId"]
print("EC2 instance created:", self.instance_id)
# Step 1: Store PEM in Secrets Manager
def store_pem_in_secrets_manager(self):
if not self.pem_content:
raise ValueError("PEM key not found in memory. Run create_ec2_instance() first.")
try:
self.secrets.create_secret(Name=self.secret_name, SecretString=self.pem_content)
except self.secrets.exceptions.ResourceExistsException:
self.secrets.put_secret_value(SecretId=self.secret_name, SecretString=self.pem_content)
print("PEM key stored in Secrets Manager as:", self.secret_name)
# Step 2: Instructions to SSH and install WordPress
def install_wordpress(self):
"""
Manual Instructions:
1. Retrieve PEM from Secrets Manager:
aws secretsmanager get-secret-value --secret-id wordpress-ec2-key --query 'SecretString' --output text > temp.pem
chmod 400 temp.pem
2. Get EC2 public IP:
aws ec2 describe-instances --instance-ids <instance_id> --query 'Reservations[0].Instances[0].PublicIpAddress' --output text
3. SSH into EC2:
ssh -i temp.pem ec2-user@<public_ip>
4. Install WordPress manually on EC2.
"""
# Step 3: Instructions to update WordPress using plugin
def generate_update_script(self):
"""
Manual Instructions:
1. Log into WordPress admin.
2. Install "Easy Updates Manager" plugin.
3. Enable automatic updates for core, plugins, and themes.
"""
# Step 4: Create weekly cron job (optional)
def create_cron_job(self):
cron = CronTab(user=True)
job = cron.new(command=f"bash {os.path.abspath('update_wordpress.sh')}", comment="Weekly WordPress Update")
job.setall("0 3 * * 1")
cron.write()
print("Cron job scheduled for weekly WordPress update")
# Step 5: Terminate EC2 instance
def terminate_ec2_instance(self):
if not self.instance_id:
raise ValueError("Instance ID not set. Run create_ec2_instance() first.")
self.ec2.terminate_instances(InstanceIds=[self.instance_id])
print("EC2 instance termination initiated:", self.instance_id)
# Step 6: Create CloudWatch alarm for EC2 CPU usage
def create_cloudwatch_alarm(self):
alarm_name = f"HighCPU-{self.instance_id}"
self.cloudwatch.put_metric_alarm(
AlarmName=alarm_name,
ComparisonOperator="GreaterThanThreshold",
EvaluationPeriods=1,
MetricName="CPUUtilization",
Namespace="AWS/EC2",
Period=300,
Statistic="Average",
Threshold=70.0,
ActionsEnabled=True,
AlarmActions=[self.topic_arn] if self.topic_arn else [],
AlarmDescription="Alarm when CPU exceeds 70 percent",
Dimensions=[{"Name": "InstanceId", "Value": self.instance_id}]
)
print("CloudWatch alarm created:", alarm_name)
# Step 7: Create SNS topic and subscribe email
def setup_sns_notifications(self):
topic = self.sns.create_topic(Name="WordPressAlerts")
self.topic_arn = topic["TopicArn"]
self.sns.subscribe(
TopicArn=self.topic_arn,
Protocol="email",
Endpoint=self.notification_email
)
print("SNS topic created and email subscription sent to:", self.notification_email)
print("Note: Confirm the subscription via email before alarms will trigger notifications.")
# Usage
if __name__ == "__main__":
wp = WordPressProvisioner()
wp.create_ec2_instance()
wp.store_pem_in_secrets_manager()
wp.install_wordpress()
wp.generate_update_script()
wp.create_cron_job()
wp.setup_sns_notifications()
wp.create_cloudwatch_alarm()
# wp.terminate_ec2_instance()
- https://docs.aws.amazon.com/efs/latest/ug/mounting-fs-mount-cmd-dns-name.html
- https://docs.aws.amazon.com/efs/latest/ug/mount-multiple-ec2-instances.html
- https://repost.aws/knowledge-center/ecs-problems-with-efs-dns-name
- https://luppeng.wordpress.com/2024/10/23/obtaining-efs-mount-target-ips-in-the-same-az-id-when-mounting-across-vpcs/
- https://vardhmanandroid2015.medium.com/beginners-guide-from-localhost-to-the-cloud-deploying-a-full-stack-docker-app-to-aws-elastic-389cce95220e
- https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features-managing-env-tiers.html
- https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.rolling-version-deploy.html
- https://repost.aws/knowledge-center/elastic-beanstalk-deletion-failure
- https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options-general.html
- https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.rolling-version-deploy.html
- https://dev.to/aws-builders/aws-elastic-beanstalk-ft-docker-for-deploying-simple-web-app-5co7
- https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/elasticbeanstalk.html
- https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_PHP.container.html
- https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/applications-sourcebundle.html
- https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.deploy-existing-version.html
+-------------------------------------------------------------+
| Elastic Beanstalk Recovery & Debug Checklist |
+-------------------------------------------------------------+
[ ] Review logs from the failing instance
- Elastic Beanstalk Console > Logs > Request Logs > Instance Logs
- Look for:
• App crash traces
• Port binding errors
• Missing environment variables
• Composer or Docker errors
[ ] Check .ebextensions and container commands
- Ensure all commands are idempotent
- Avoid assumptions:
• Pre-existing directories
• Mounted volumes
- Use `|| true` to prevent non-critical failures:
container_commands:
01_setup:
command: "mkdir -p /var/app/data || true"
[ ] Rebuild environment (no database binding)
- Pros:
• Clears corrupted deployments
• Resets configuration drift
• Reprovisions EC2 instances
• Tests idempotency
- Cons:
• Causes temporary downtime
• Ephemeral data is lost
• Requires redeployment if version is not pinned
• May mask deeper configuration issues
[ ] Terminate EC2 instance manually
- Pros:
• Triggers Elastic Beanstalk to replace the instance
• Faster than full rebuild
• Preserves environment config
- Cons:
• Doesn’t fix root cause
• May cause load imbalance
• Risk of repeated failures
[ ] Identify EC2 instance with incorrect application version
- EC2 Console > Filter by Elastic Beanstalk tags
- Compare deployed version in Elastic Beanstalk console
- Terminate mismatched instance via EC2 Console
- Elastic Beanstalk will auto-replace it
[ ] Fix 502 Bad Gateway after severe state
- Elastic Beanstalk Console > Check environment health
- Look for “Severe” or “Degraded” status
- View logs to confirm proxy or app failure
- If isolated: terminate instance via EC2 Console
- If systemic: use “Rebuild Environment” from Actions menu
- Redeploy correct application version
- Confirm health returns to “Green”
Log File | CloudFormation Lifecycle (Boto3) | Description |
---|---|---|
eb-tools.log |
CreateStack / UpdateStack
|
Logs from EB CLI and platform tools during environment provisioning and updates. |
eb-publish.log |
CreateChangeSet / ExecuteChangeSet
|
Tracks application version publishing and deployment orchestration. |
eb-engine.log |
ExecuteChangeSet |
Main EB engine log. Tracks deployment lifecycle, configuration parsing, and container orchestration. |
eb-hooks.log |
ExecuteChangeSet |
Logs execution of platform lifecycle hooks. |
eb-cfn-init.log |
CreateStack / UpdateStack
|
Wrapper log for cfn-init , capturing provisioning status and errors. |
eb-cfn-init-call.log |
CreateStack / UpdateStack
|
Logs the command used to invoke cfn-init , including metadata and parameters. |
cfn-init.log |
CreateStack / UpdateStack
|
Core log for cfn-init . Tracks resource creation and configuration sets. |
cfn-init-cmd.log |
CreateStack / UpdateStack
|
Detailed command output from cfn-init . |
cfn-hup.log |
UpdateStack |
Logs from cfn-hup , which monitors metadata changes and triggers updates. |
cfn-wire.log |
SignalResource / DescribeStackResource
|
Tracks metadata fetches and signal responses between instance and CloudFormation. |
yum.log |
CreateStack / UpdateStack
|
Package manager log for Amazon Linux. See comparison of APT, DNF, Pacman, and others. |
cloud-init-output.log |
CreateStack |
Output from cloud-init during EC2 instance bootstrapping. |
-
CreateStack
: Initial provisioning and resource creation. -
UpdateStack
: Modifications to existing stacks. -
CreateChangeSet
/ExecuteChangeSet
: Used in change-driven deployments. -
SignalResource
: Used to notify CloudFormation of resource status (e.g., success/failure). -
DescribeStackResource
: Metadata fetches and drift detection.
- https://github.com/getmoto/moto/blob/master/tests/test_ecs/test_ecs_boto3.py
- http://docs.getmoto.org/en/latest/docs/services/ecs.html
- https://docs.aws.amazon.com/AmazonECS/latest/developerguide/api_failures_messages.html
- https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform-versions-changelog.html
- https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_definitions.html
- https://aws.amazon.com/blogs/containers/shipping-logs-to-third-parties-with-kinesis-data-firehose-and-fluent-bit-for-amazon-eks-on-aws-fargate/
- https://docs.aws.amazon.com/step-functions/latest/dg/cloudwatch-log-level.html
- https://blog.papertrailapp.com/better-logging-for-lambda-functions/?
- https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-signed-urls.html
- https://wordpress.org/support/article/optimization/
- https://aws.amazon.com/blogs/startups/how-to-accelerate-your-wordpress-site-with-amazon-cloudfront/
- https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/QueryStringParameters.html
- https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html
- https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/git-sync-status.html#git-sync-status-stack-state
- https://docs.aws.amazon.com/prescriptive-guidance/latest/least-privilege-cloudformation/introduction.html
- https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-validate-template.html
- https://carriagereturn.nl/aws/cloudformation/foreach/loop/2023/08/07/taking-cfn-loops-for-spin.html
- https://towardsthecloud.com/validating-cloudformation-templates-codepipeline
- https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html
- https://docs.aws.amazon.com/pdfs/prescriptive-guidance/latest/least-privilege-cloudformation/least-privilege-cloudformation.pdf
- https://stackoverflow.com/questions/34237218/user-is-not-authorized-to-perform-cloudformationcreatestack
- https://serverless.com/blog/serverless-workaround-cloudformation-200-resource-limit/
- https://aws.amazon.com/blogs/architecture/serverless-dynamic-web-pages-in-aws-provisioned-with-cloudformation/
- https://github.com/hashicorp/terraform/issues/30715
- https://github.com/serverless/examples
- https://github.com/serverless/serverless/issues/9974
- https://serverless.com/framework/docs/providers/aws/guide/resources/
- https://serverless-stack.com/chapters/cognito-user-pool-vs-identity-pool.html
- https://github.com/arabold/serverless-export-env/issues/8
- https://read.iopipe.com/the-right-way-to-do-serverless-in-python-e99535574454
- https://levelup.gitconnected.com/creating-a-chat-app-with-serverless-websockets-and-python-a-tutorial-54cbc432e4f
- https://serverless.com/framework/docs/providers/aws/guide/quick-start/
- https://serverless.com/blog/flask-python-rest-api-serverless-lambda-dynamodb/
- https://github.com/serverless/serverless/issues/5855
- https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html
- https://buildmedia.readthedocs.org/media/pdf/boto/latest/boto.pdf
- https://boto3.amazonaws.com/v1/documentation/api/latest/reference/core/resources.html
- https://boto3.amazonaws.com/v1/documentation/api/latest/guide/clients.html
- http://2017.compciv.org/guide/topics/aws/intro-to-aws-boto3.html
- https://boto3.amazonaws.com/v1/documentation/api/latest/reference/core/session.html?highlight=get_credentials
- https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html
- https://kb.indexexchange.com/Reporting/Client_Audit_Logs/Code_Examples.htm
- https://docs.aws.amazon.com/AmazonS3/latest/dev/notification-content-structure.html
- https://docs.aws.amazon.com/AmazonS3/latest/dev/ways-to-add-notification-config-to-bucket.html
- https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html
- https://docs.aws.amazon.com/AmazonS3/latest/dev/ErrorBestPractices.html
- https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html
- https://github.com/boto/botocore/blob/master/tests/unit/test_handlers.py#L837
- https://webinista.com/updates/restore-deleted-s3-object-versions/
- https://github.com/aws-amplify/amplify-js/issues/3243
- https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingSOAPOperations.html
- https://docs.aws.amazon.com/athena/latest/ug/glue-recreate-db-and-tables-cli.html
- https://aws.amazon.com/blogs/big-data/build-and-manage-your-modern-data-stack-using-dbt-and-aws-glue-through-dbt-glue-the-new-trusted-dbt-adapter/
- https://aws.amazon.com/blogs/security/how-to-rotate-your-twitter-api-key-and-bearer-token-automatically-with-aws-secrets-manager/
- https://docs.aws.amazon.com/whitepapers/latest/aws-caf-for-ai/security-perspective-compliance-and-assurance-of-aiml-systems.html
- https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-known-issues.html
- https://github.com/aws-samples/Implementing-custom-domain-names-for-Amazon-API-Gateway-private-endpoints
- https://docs.aws.amazon.com/apigateway/latest/developerguide/configure-api-gateway-lambda-authorization-with-console.html
- https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-settings-method-request.html
- https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-set-up-simple-proxy.html
- https://www.alexdebrie.com/posts/lambda-custom-authorizers/
- https://aws.amazon.com/blogs/compute/control-access-to-your-apis-using-amazon-api-gateway-resource-policies/
- https://securityboulevard.com/2019/02/aws-security-best-practices-for-api-gateway/
- https://dzone.com/articles/our-tryst-with-aws-api-gateway-and-xml-transformat
- https://blog.codecentric.de/en/2016/12/serverless-soap-legacy-api-integration-java-aws-lambda-aws-api-gateway/
- https://docs.aws.amazon.com/apigateway/latest/developerguide/integration-passthrough-behaviors.html
- https://serverless.com/framework/docs/providers/aws/events/apigateway/
- https://gist.github.com/crypticmind/c75db15fd774fe8f53282c3ccbe3d7ad
- https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html
- https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html
- https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html
- https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html
- https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html
- https://swagger.io/docs/specification/authentication/bearer-authentication/