• Stars
    star
    507
  • Rank 87,068 (Top 2 %)
  • Language
    Python
  • Created over 8 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A hands on repo with multiple demonstrations on AWS ๐ŸŽ“

AWS 2 Tier Architecture setup with AWS CLI - Wordpress application on AWS RDS running MySQL

There are two parts to the setup,

  • Part 1 - Setting up the network infrastructure (VPC, Subnets, Security Groups)
  • Part 2 - Create & Configure the Database, Web & Load Balancer Instances Fig 1 : Web-App-DB (3 Tier) - Reference Architecture Context Assuming you have already setup your AWS CLI for Region US East (N. Virginia). Lets move forward;

Part 1 - Create VPC, Subnet, Security Group

Setting the AWS Region

export AWS_DEFAULT_REGION=us-east-1

Creating a VPC

Lets create a Virtual Private Cloud - VPC for our setup with /20 range and get our VPC ID using the query parameter and set the output format to text. Its is a good practice to give meaningful name to the AWS resources, Lets call our VPC tmpVPC

vpcID=$(aws ec2 create-vpc \
      --cidr-block 10.0.0.0/20 \
      --query 'Vpc.VpcId' \
      --output text)
Tag the VPC
aws ec2 create-tags --resources "$vpcID" --tags 'Key=Name,Value=tmpVPC'

Instances launched inside a VPC are invisible to the rest of the internet by default. AWS therefore does not bother assigning them a public DNS name. This can be changed easily by enabling the DNS support as shown below,

aws ec2 modify-vpc-attribute --vpc-id "$vpcID" --enable-dns-support "{\"Value\":true}"

aws ec2 modify-vpc-attribute --vpc-id "$vpcID" --enable-dns-hostnames "{\"Value\":true}"

Check if internet gateway is set. If it wasn't there then do these,

internetGatewayId=$(aws ec2 create-internet-gateway \
                  --query 'InternetGateway.InternetGatewayId' \
                  --output text) && echo "$internetGatewayId"
aws ec2 attach-internet-gateway --internet-gateway-id "$internetGatewayId" --vpc-id "$vpcID"
Tag the Internet Gateway
aws ec2 create-tags --resources $internetGatewayId --tags 'Key=Name,Value=tmpVPC-Internet-Gateway'

I have chosen /20 CIDR deliberately to allow us to create different subnets for our db, web instances and reserve some for the future. You might want to choose something else that works better for you. Important: AWS reserves both the first four and the last IP address in each subnet's CIDR block. They're not available for use. The smallest subnet (and VPC) you can create uses a /28 netmask (16 IP addresses), and the largest uses a /16 netmask (65,536 IP addresses). Excellent resources to understand CIDR blocks here & here & my quick help gist

Subnet Reservation for the Database, Web Servers & future

Lets reserve the IP Range to spread across multiple availability zones.

VPC Range Availability Zone Reservation Purpose IP Ranges IP Ranges IP Ranges
10.0.0.0/20
AZ1 US-East-1b 10.0.0.0/21
AZ1 Private - DB Subnet 10.0.0.0/22
AZ1 10.0.4.0/22
AZ1 Web Subnet 10.0.4.0/23
AZ1 Spare Subnet 10.0.6.0/23
AZ2 US-East-1c 10.0.8.0/21
AZ2 Private - DB Subnet 10.0.8.0/22
AZ2 10.0.12.0/22
AZ2 Web Subnet 10.0.12.0/23
AZ2 Spare Subnet 10.0.14.0/23

After creating all the subnets, It should look something like this, alt tag

Creating subnets for the DB & Web Servers in AZ1

USEast1b_DbSubnetID=$(aws ec2 create-subnet --vpc-id "$vpcID" --cidr-block 10.0.0.0/22 --availability-zone us-east-1b --query 'Subnet.SubnetId' --output text)

USEast1b_WebSubnetID=$(aws ec2 create-subnet --vpc-id "$vpcID" --cidr-block 10.0.4.0/23 --availability-zone us-east-1b --query 'Subnet.SubnetId' --output text)

USEast1b_SpareSubnetID=$(aws ec2 create-subnet --vpc-id "$vpcID" --cidr-block 10.0.6.0/23 --availability-zone us-east-1b --query 'Subnet.SubnetId' --output text)
Tag the subnet ID's for AZ1
aws ec2 create-tags --resources "$USEast1b_DbSubnetID" --tags 'Key=Name,Value=az1-us-east-1b-DB-Subnet'

aws ec2 create-tags --resources "$USEast1b_WebSubnetID" --tags 'Key=Name,Value=az1-us-east-1b-Web-Subnet'

aws ec2 create-tags --resources "$USEast1b_SpareSubnetID" --tags 'Key=Name,Value=az1-us-east-1b-Spare-Subnet'

Creating subnets for the DB & Web Servers in AZ2

USEast1c_DbSubnetID=$(aws ec2 create-subnet --vpc-id "$vpcID" --cidr-block 10.0.8.0/22 --availability-zone us-east-1c --query 'Subnet.SubnetId' --output text)

USEast1c_WebSubnetID=$(aws ec2 create-subnet --vpc-id "$vpcID" --cidr-block 10.0.12.0/23 --availability-zone us-east-1c --query 'Subnet.SubnetId' --output text)

USEast1c_SpareSubnetID=$(aws ec2 create-subnet --vpc-id "$vpcID" --cidr-block 10.0.14.0/23 --availability-zone us-east-1c --query 'Subnet.SubnetId' --output text)
Tag the subnet ID's for AZ2
aws ec2 create-tags --resources "$USEast1c_DbSubnetID" --tags 'Key=Name,Value=az1-us-east-1c-DB-Subnet'

aws ec2 create-tags --resources "$USEast1c_WebSubnetID" --tags 'Key=Name,Value=az1-us-east-1c-Web-Subnet'

aws ec2 create-tags --resources "$USEast1c_SpareSubnetID" --tags 'Key=Name,Value=az1-us-east-1c-Spare-Subnet'

Configuring the Route Table

Each subnet needs to have a route table associated with it to specify the routing of its outbound traffic. By default every subnet inherits the default VPC route table which allows for intra-VPC communication only.

The following adds a route table to our subnet that allows traffic not meant for an instance inside the VPC to be routed to the internet through our earlier created internet gateway.

routeTableID=$(aws ec2 create-route-table --vpc-id "$vpcID" --query 'RouteTable.RouteTableId' --output text)

aws ec2 create-route --route-table-id "$routeTableID" --destination-cidr-block 0.0.0.0/0 --gateway-id "$internetGatewayId"

aws ec2 associate-route-table --route-table-id "$routeTableID" --subnet-id "$USEast1b_WebSubnetID"

aws ec2 associate-route-table --route-table-id "$routeTableID" --subnet-id "$USEast1c_WebSubnetID"

Creating a security group for the Web Servers

  • Group Name - webSecGrp
  • Description - My Web Security Group
webSecGrpID=$(aws ec2 create-security-group --group-name webSecGrp \
            --description "Security Group for Web servers" \
            --vpc-id "$vpcID" \
            --output text)

Add a rule that allows inbound SSH, HTTP, HTTP traffic ( from any source )

aws ec2 authorize-security-group-ingress --group-id "$webSecGrpID" --protocol tcp --port 22 --cidr 0.0.0.0/0
aws ec2 authorize-security-group-ingress --group-id "$webSecGrpID" --protocol tcp --port 80 --cidr 0.0.0.0/0
aws ec2 authorize-security-group-ingress --group-id "$webSecGrpID" --protocol tcp --port 443 --cidr 0.0.0.0/0

Interesting reading here about why we need to use security group ID instead of name; AWS Documentation & Github Bug Report

When you specify a security group for a nondefault VPC to the CLI or the API actions, you must use the security group ID and not the security group name to identify the security group.

Part 2 - Create & Configure the Database, Web & Load Balancer Instances

Creating the RDS Instance

Pre-Requisites

Create the DB Subnet

Creates a new DB subnet group. DB subnet groups must contain at least one subnet in at least two AZs in the region.

aws rds create-db-subnet-group \
        --db-subnet-group-name "mysqlDBSubnet" \
        --db-subnet-group-description "Subnet group for my databases instances" \
        --subnet-ids "$USEast1b_DbSubnetID" "$USEast1c_DbSubnetID"

Creating a Security Group for RDS Database (running MySQL)

  • Group Name - dbSecGrp
  • Description - My Database Security Group
dbSecGrpID=$(aws ec2 create-security-group \
           --group-name dbSecGrp \
           --description "Security Group for database servers" \
           --vpc-id "$vpcID" \
           --output text)

Add a rule that allows inbound MySQL from Webservers (in our Web Security Group)

aws ec2 authorize-security-group-ingress \
        --group-id "$dbSecGrpID" \
        --protocol tcp \
        --port 3306 \
        --source-group \
        "$webSecGrpID"
Create a DB parameter group to monitor CRUD
aws rds create-db-parameter-group \
    --db-parameter-group-name myParamGrp \
    --db-parameter-group-family MySQL5.6 \
    --description "My new parameter group"

aws rds modify-db-parameter-group --db-parameter-group-name myParamGrp --parameters "ParameterName=general_log, ParameterValue=ON, Description=logParameter,ApplyMethod=immediate"

Start the RDS - MySQL Instance

rdsInstID=rds-mysql-inst01
aws rds create-db-instance \
        --db-instance-identifier "$rdsInstID" \
        --allocated-storage 5 \
        --db-instance-class db.t2.micro \
        --no-multi-az \
        --no-auto-minor-version-upgrade \
        --availability-zone us-east-1b \
        --vpc-security-group-ids "$dbSecGrpID" \
        --db-subnet-group-name "mysqldbsubnet" \
        --engine mysql \
        --port 3306 \
        --master-username dbuser \
        --master-user-password dbuserpass \
        --db-parameter-group-name myParamGrp \
        --db-name wpdb \
        --backup-retention-period 3
        
aws rds modify-db-instance --db-instance-identifier "$rdsInstID" --db-parameter-group-name myParamGrp

Refer:

Create the Web Servers

Create the SSH Keys & boot-strap the binaries

aws ec2 create-key-pair --key-name webKey --query 'KeyMaterial' --output text > webKey.pem
chmod 400 webKey.pem

cat >> userDataScript <<EOF
#!/bin/bash
set -e -x

# Setting up the HTTP server 
yum update -y
yum install -y httpd php php-mysql mysql
service httpd start
chkconfig httpd on
groupadd www
usermod -a -G www ec2-user


# Download wordpress site & move to http
cd /var/www/
curl -O https://wordpress.org/latest.tar.gz && tar -zxf latest.tar.gz
rm -rf /var/www/html
mv wordpress /var/www/html

# Set the permissions
chown -R root:www /var/www
chmod 2775 /var/www
find /var/www -type d -exec chmod 2775 {} +
find /var/www -type f -exec chmod 0664 {} +

# SE Linux permissive
# needed to make wp connect to DB over newtork
setsebool -P httpd_can_network_connect=1
setsebool httpd_can_network_connect_db on

systemctl restart httpd
# Remove below file after testing
echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
EOF

Start the Web Instance

instanceID=$(aws ec2 run-instances \
           --image-id ami-2051294a \
           --count 1 \
           --instance-type t2.micro \
           --key-name wpKey \
           --security-group-ids "$webSecGrpID" \
           --subnet-id "$webSubnetID" \
           --user-data file://userDataScript \
           --associate-public-ip-address \
           --query 'Instances[0].InstanceId' \
           --output text)

instanceUrl=$(aws ec2 describe-instances \
            --instance-ids "$instanceID" \
            --query 'Reservations[0].Instances[0].PublicDnsName' \
            --output text)

# Get the IP address of the running instance:
ip_address=$(aws ec2 describe-instances \
           --instance-ids "$instanceID" \
           --output text --query 'Reservations[*].Instances[*].PublicIpAddress')

Create the Elastic Load Balancer

Ref: https://aws.amazon.com/articles/1636185810492479

aws elb create-load-balancer \
--load-balancer-name my-load-balancer \
--listeners "Protocol=HTTP,LoadBalancerPort=80,InstanceProtocol=HTTP,InstancePort=80" \
--subnets "$USEast1c_WebSubnetID" \
--security-groups "$webSecGrpID"

Apache Workbench Results

[root@ip-172-31-55-78 ec2-user]# ab -n 20000 -c 30 -k http://xx.xx.xx.xx/
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking xx.xx.xx.xx (be patient)
Completed 2000 requests
Completed 4000 requests
Completed 6000 requests
Completed 8000 requests
Completed 10000 requests
Completed 12000 requests
Completed 14000 requests
Completed 16000 requests
Completed 18000 requests
Completed 20000 requests
Finished 20000 requests


Server Software:        Apache/2.4.6
Server Hostname:        xx.xx.xx.xx
Server Port:            80

Document Path:          /
Document Length:        11951 bytes

Concurrency Level:      30
Time taken for tests:   4684.053 seconds
Complete requests:      20000
Failed requests:        5641
   (Connect: 0, Receive: 0, Length: 5641, Exceptions: 0)
Write errors:           0
Keep-Alive requests:    0
Total transferred:      349703793 bytes
HTML transferred:       344441217 bytes
Requests per second:    4.27 [#/sec] (mean)
Time per request:       7026.079 [ms] (mean)
Time per request:       234.203 [ms] (mean, across all concurrent requests)
Transfer rate:          72.91 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        1    2  49.6      1    7014
Processing:   356 7013 3842.2   5067   43302
Waiting:        0 6040 3317.2   4332   40634
Total:        357 7014 3842.9   5069   43303

Percentage of the requests served within a certain time (ms)
  50%   5069
  66%   7997
  75%   9596
  80%  10332
  90%  12134
  95%  13574
  98%  16122
  99%  18490
 100%  43303 (longest request)
[root@ip-172-31-55-78 ec2-user]#

More Repositories

1

my-first-cdk-project

A hands on repo with multiple demonstrations on CDK: Used by Udemy Course๐ŸŽ“
Python
72
star
2

aws-real-time-use-cases

Repo of quick starts for real time AWS use cases ๐ŸŽ“
67
star
3

serverless-s3-to-elasticsearch-ingester

AWS Lambda function to ingest application logs from S3 Buckets into ElasticSearch for indexing
Python
57
star
4

DevOps-Demos

Repository to host my DevOps Experiments ๐ŸŽ“
56
star
5

dev-sec-ops

Advanced AWS Security Automation Resources: Used by Udemy Course ๐ŸŽ“
Python
37
star
6

server-migration-onprem-to-aws

Simple demonstration on how to Lift & Shift OnPremise workload to AWS ๐ŸŽ“
26
star
7

secure-private-api

AWS API Gateway Security Deep dive
Python
22
star
8

serverless-cloudwatch-logs-exporter

AWS Serverless Lambda function that sends log data from CloudWatch Logs and S3 ๐ŸŽ“
Python
19
star
9

s3-to-rds-with-glue

Extract, transform, and load data for analytic processing using AWS Glue
Python
18
star
10

Serverless-AMI-Baker

Lambda to create AMI of your instances and tag them for replication or auto deletion
Python
18
star
11

Serverless-GuardDuty-Findings-to-SNS

A lambda function to push GuardDuty Findings to SNS Topic ๐ŸŽ“
Python
17
star
12

security-incident-response-instance-isolation

Automation โ˜๏ธAWS Security ๐Ÿ‘ฎ- Incident Response using Lambdaโšก๏ธto prevent credential exfiltration
Python
17
star
13

serverless-backup

A simple AWS Boto3 script to trigger EBS Snapshots using Lambda Functions๐ŸŽ“
Python
17
star
14

elk-stack

An IaaS Implementation of ELK Stack ๐ŸŽ“
16
star
15

serverless-ami-replicator

Python(Boto) Script to replicate AMI across AWS Regions using Lambda (Serverless) Functions
Python
14
star
16

api-with-stage-variables

Use Stage Variables in API Gateway to point to different version of AWS Lambda Functions.
Python
13
star
17

emr-on-eks

Run EMR workloads on EKS
Python
12
star
18

run-ansible-playbook-from-ssm

Execute configuration management directives using Ansible on your instances using State Manager.
12
star
19

serverless-iam-key-sentry

Find and list Access Keys older than certain date
Python
12
star
20

serverless-kms-key-rotator

AWS KMS Encryption & Decyption using CLI & Lambda
Python
11
star
21

serverless-monitor-for-unused-iam-roles

Monitor Unused IAM Roles ๐ŸŽ“
Python
10
star
22

cdk-demos

A repository to hold my AWS Cloud Deployment Kit Demos ๐ŸŽ“
Python
10
star
23

reliable-queues-with-retry-dlq

Reliable Message Processing with Dead-Letter-Queues Replay
Python
10
star
24

serverless-kms-sentry

A simple lambda function to monitor certain KMS events through cloudtrail and notify users or security team through slack.
Python
9
star
25

serverless-image-processor

Process images uploaded to S3 using lambda services ๐ŸŽ“
Shell
9
star
26

improve-db-perf-with-rds-proxy

Improve Databases Performance & Availability with RDS Proxy
Python
9
star
27

AWS-Auto-Tagging

A python script to automatically scan and tag AWS Resources ๐ŸŽ“
Python
9
star
28

serverless-janitor-ebs-snapshots

A serverless(AWS Lambda) janitor to clean up old and unused EBS Snapshots ๐ŸŽ“
Python
8
star
29

lex-faq-bot

A simple conversational chat bot using AWS Lex, Lambda, DynamoDB
Python
8
star
30

serverless-ebs-penny-pincher

A Python Boto Repo to remove EBS Volumes without the requisite tags or no tags
Python
8
star
31

serverless-janitor-for-ami

An AWS Lambda function to automatically de-register AMIs beyond retention date and remove the corresponding EBS Snapshots
Python
8
star
32

serverless-code-commit-repo-event-notifier

AWS Lambda Function Trigger for an CodeCommit Event & Push to Slack ๐ŸŽ“
Python
8
star
33

scale-eks-with-keda

Event Driven Scaling Architecture with Kubernetes KEDA on AWS
Python
7
star
34

setup-aws-code-commit

How to setup AWS Code Commit using SSH and IAM roles. ๐ŸŽ“ Setup SSH key to enable IAM users to connect to Code Commit!
7
star
35

stream-etl-with-glue

Serverless streaming ETL in with glue job & querying with Athena
Python
7
star
36

cross-account-ecr-access-control

Allow AWS Account B to be able to connect to Account A ECR image repository to push or pull images
7
star
37

migrate-from-github-to-codecommit

Migrate from Github to CodeCommit
7
star
38

fargate-with-efs

Run serverless containers with AWS Fargate and use persistent storage from Amazon EFS
Python
7
star
39

serverless-sg-sentry

Automatically Revert and Receive Notifications About Changes to Security Groups ๐ŸŽ“
Python
7
star
40

serverless-api-mutual-tls

Implement Mutual TLS auth for an API on AWS API Gateway
Python
6
star
41

serverless-janitor-for-security-groups

Automatically delete "launch-wizard" security groups created by AWS Console ๐ŸŽ“
Python
6
star
42

cloudera-On-Docker

clouderaOnDocker
Shell
6
star
43

redshift-demo

Simple getting started 1-node redshift cluster stack
Python
6
star
44

security-automation-respond-to-failed-ssh-access

Automation โ˜๏ธAWS Security ๐Ÿ‘ฎ using StepFunctionsโšก๏ธto monitor & defend SSH intrusion attempts
Python
6
star
45

serverless-async-lambda-api

Synchronous Vs Asynchronous Invocation with AWS Lambda
Python
6
star
46

Learn-Chef

Learn how to setup Hosted Chef Server to manage AWS EC2 Instances
5
star
47

Automated-Update-Management-in-AWS

Automated Patch and Update Management in AWS ๐ŸŽ“
5
star
48

event-driven-with-eventbridge

Event Driven Architecture with EventBridge & Lambda
Python
5
star
49

security-automation-remediate-unintended-iam-access

AWSโ˜๏ธ Security ๐Ÿ‘ฎAutomation using Lambdaโšก๏ธto monitor & defend unintended IAM Access
Python
4
star
50

security-automation-remediate-unintended-s3-object-acl

Automation โ˜๏ธAWS Security ๐Ÿ‘ฎ using StepFunctionsโšก๏ธto enforce object acls and keep them private
Python
4
star
51

event-processor-on-eks

Event Driven Architecture with Kubernetes on AWS
Python
4
star
52

secure-api-with-throttling

Learn how to prevent your API from being overwhelmed by too many requests
Python
4
star
53

dynamodb-streams-processor

AWS Lambda trigger to process new items in a stream from a DynamoDB table.
Python
4
star
54

reliable-sqs-with-dlq

Reliably process messages in queue with dead-letter queues in SQS
Python
3
star
55

url-filtering-with-nw-firewall

Deploy a firewall that should allow or drop traffic based on customisable rules
Python
3
star
56

api-request-validation

Validate your API requests using API Gateway | Reduce cost & Improve Performance
Python
3
star
57

serverless-machine-learning-api

Serverless Machine Learning API: Use PyTorch in AWS Lambda for Inference
Python
3
star
58

Docker-Compose-Node-on-MongoDB

Multi Container Web Application using Docker Compose
JavaScript
3
star
59

security-automation-monitor-users-with-excessive-privileges

AWSโ˜๏ธ Security ๐Ÿ‘ฎAutomation using Config to monitor IAM Users with excessive privileges
Python
3
star
60

cloudfront-auth-at-edge

Authorization@Edge โ€“ Use Lambda@Edge and JSON Web Tokens to enhance Web Application Security
CSS
3
star
61

serverless-cloudwatch-log-retention

Lambda function to automatically set the retention policy of CloudWatch Log ๐ŸŽ“
Shell
3
star
62

security-automation-remediate-weak-s3-policy

Automation โ˜๏ธAWS Security ๐Ÿ‘ฎ using StepFunctionsโšก๏ธto remediate weak s3 bucket policies๐Ÿ“ฆ
Python
3
star
63

dynamodb-global-tables

Amazon DynamoDB global tables provide a fully managed solution for deploying a multi-region, multi-master database.
3
star
64

serverless-s3-event-processor

AWS Lambda to process new S3 Objects - For ex, Image Resizing, Object Recognition, Insert to DynamoDB etc.
Shell
3
star
65

attribute-based-access-control-ec2

Automation โ˜๏ธAWS Security ๐Ÿ‘ฎ- Attribute Based Access Control for EC2 ๐ŸŽ“
Python
3
star
66

aws-config-tag-enforcement

AWS Config for TAG Enforcement
3
star
67

s3-object-lambda-demo

S3 Object Lambda - Process S3 Retrieved Data Inflight
Python
2
star
68

alexa-skills

A repository to hold all my alexa-skills
Python
2
star
69

uTorrent-On-Alpine-Linux

Docker container to run Torrent (uTorrent) Server on Alpine Linux
2
star
70

aws

Serverless and Event driven solutions using AWS services
Python
2
star
71

azure-scale-vmss-on-events

Scale Azure VM Scale Sets in response to events. For ex, based on queue length
Bicep
2
star
72

improve-ec2-performance

Use Jumbo Frames - MTU to improve EC2 performance
Python
2
star
73

fargate-chat-app

fargate-chat-app ๐ŸŽ“
JavaScript
2
star
74

cfn-challenges

Learn AWS CloudFormation in a fun way with these templates: Used by Udemy Course๐ŸŽ“
HTML
2
star
75

ebs-gp3-perf

EBS Volume Performance Tests on AWS r5b using fio
Python
2
star
76

web-server

A sample web server using nginx container ๐ŸŽ“
HTML
2
star
77

Python-Demos

Collection of python samples and demos
Python
2
star
78

secure-s3-with-access-points

Easily Manage Shared Data Sets with Amazon S3 Access Points
Python
2
star
79

tumbling-window-stream-analytics

Streaming analytics using Tumbling Windows
Python
2
star
80

Movie-OmdbMetadata-Fetcher

A Google App Script to read the movie year and title from Google Spreadsheet and fetch the metadata for the media through the OMDB API
JavaScript
2
star
81

batch-job-runner

batch-job-runner ๐ŸŽ“
Shell
2
star
82

serverless-video-metadata-processor

Extract video file metadata for file uploaded to S3 Bucket using AWS Lambda ๐ŸŽ“
Python
2
star
83

eks-persistent-storage-with-efs

Persistent storage for Kubernetes using AWS EFS
Python
2
star
84

serverless-aws-resource-tagger

AWS Lambda function to tag resources to ensure compliance
2
star
85

elasticache-for-app-performance

Improve application performance using ElastiCache Redis ๐ŸŽ“
Python
2
star
86

llm-bootcamp

Jupyter Notebook
2
star
87

glue-elastic-views-on-s3

AWS Glue Elastic Views: replicate data across multiple AWS data stores to use with your applications without having to write custom code
Python
2
star
88

eks-security-with-security-group

Secure kubernetes with AWS Security Groups
Python
2
star
89

restrict-ec2-launch-to-cloudformation

Restrict EC2 Launch Only through Cloudformation ๐ŸŽ“
1
star
90

serverless-poll-app

1
star
91

mssql-to-rds-mssql

A walkthrough to guide you through the process of migrating from Microsoft SQL Server to Amazon RDS for SQL Server
Python
1
star
92

azure-open-telemetry-tracing

Bicep
1
star
93

mysql-to-rds

A walkthrough to guide you through the process of migrating from MySQLDB to Amazon RDS MySQL
Python
1
star
94

xray-lambda-profiler

A simple project to show how to profile lambda calls using AWS XRay ๐ŸŽ“
Python
1
star
95

eks-log-shipping-with-fluentbit

Kubernetes(EKS) Application Logging using FluentBit
Python
1
star
96

restrict-ec2-launch-to-clouformation

restrict-ec2-launch-to-clouformation
1
star
97

azure-vm-to-storage-queue

Read & Write to Azure Storage Queue from VM scoped with Managed Identity permissions using Python SDK
Bicep
1
star
98

event-streams-with-managed-kafka

Event Driven Architecture with Kafka & Lambda
Python
1
star
99

uTorrent-On-CentOS-Docker-Container

uTorrent on CentOS 6.6 in docker container
1
star
100

serverless-todo-app

serverless-todo-app
Vue
1
star