Skip to content

Instantly share code, notes, and snippets.

@misostack
Created January 6, 2024 01:46
Show Gist options
  • Save misostack/31c5599b7f589d6cbea4f6fae5ce7eb2 to your computer and use it in GitHub Desktop.
Save misostack/31c5599b7f589d6cbea4f6fae5ce7eb2 to your computer and use it in GitHub Desktop.
AWS Labs

Design a good architecture with AWS

image

@misostack
Copy link
Author

CloudWatch Labs

Command to access AWS CLI

sudo apt update -y
sudo apt install unzip -y
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

Command to do stress test

sudo apt update -y
sudo apt install stress-ng -y
stress-ng --cpu 4 --io 2 --vm 1 --vm-bytes 250m --timeout 60s --metrics-brief

CloudWatch Metrics

CloudWatch Standard Metrics

image

CloudWatch Custom Metrics

Create Policy, Create Role, and Attach IAM Role for EC2 Instance
image
image
image
image
image

Test

aws cloudwatch list-metrics

Test put-metric

[
  {
    "MetricName": "New Posts",
    "Timestamp": "Tuesday, January 08, 2024 8:28:20 AM",
    "Value": 0.50,
    "Unit": "Count"
  }
]
aws cloudwatch put-metric-data --namespace "JSGuruCustomMetric" --metric-data file://metric.js
aws cloudwatch put-metric-data --metric-name CloudWatchAlarmValue --namespace JSGuruCustomMetric --unit Percent--value 50 --dimensions InstanceID=$(curl -s -X GET -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/instance-id),InstanceType=$(curl -s -X GET -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/instance-type)

image
image

Request EC2 API Token

TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"`
echo $TOKEN

Get EC2 meta-data and user-data

curl -X GET -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data
curl -X GET -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/instance-id

curl -X GET -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/user-data

Create Alarm

image

Notification

image

Trigger Lambda Function

image

Trigger AutoScale Group with Action

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment