WebX

এডব্লিউএস (AWS) চিটশিট

এডব্লিউএস (Amazon Web Services) হলো একটি শীর্ষস্থানীয় ক্লাউড কম্পিউটিং প্ল্যাটফর্ম যা কম্পিউট, স্টোরেজ, নেটওয়ার্কিং, ডাটাবেস, এবং সার্ভারলেস সলিউশন সহ বিস্তৃত সার্ভিস প্রদান করে। এই চিটশিটে AWS-এর সব মৌলিক থেকে উন্নত ধারণা, CLI কমান্ড, এবং ব্যবহারিক উদাহরণ বিস্তারিতভাবে কভার করা হয়েছে।

১. এডব্লিউএস পরিচিতি

১.১ মৌলিক ধারণা

  • রিজিয়ন: ভৌগলিক অবস্থান (যেমন, us-east-1)।
  • অ্যাভেলেবিলিটি জোন (AZ): রিজিয়নের মধ্যে আলাদা ডাটা সেন্টার।
  • IAM: পরিচয় এবং অ্যাক্সেস ম্যানেজমেন্ট।
  • CLI: AWS কমান্ড-লাইন ইন্টারফেস।
  • পে-অ্যাজ-ইউ-গো: ব্যবহারের ভিত্তিতে খরচ।

১.২ ইনস্টলেশন (AWS CLI)

  • ইনস্টল:
    curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
    unzip awscliv2.zip
    sudo ./aws/install
  • চেক করুন:
    aws --version

১.৩ কনফিগারেশন

aws configure
  • প্রশ্নের উত্তর দিন:
    • Access Key ID
    • Secret Access Key
    • Default region (যেমন, us-east-1)
    • Output format (যেমন, json)

২. IAM (Identity and Access Management)

২.১ ব্যবহারকারী এবং গ্রুপ

কমান্ড/কাজবর্ণনাউদাহরণ
Create Userনতুন ব্যবহারকারী।aws iam create-user --user-name myuser
Create Groupগ্রুপ তৈরি।aws iam create-group --group-name mygroup
Add User to Groupগ্রুপে ব্যবহারকারী যোগ।aws iam add-user-to-group --user-name myuser --group-name mygroup

২.২ পলিসি

  • JSON পলিসি উদাহরণ:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::mybucket"
    }
  ]
}
  • পলিসি সংযুক্তি:
    aws iam attach-user-policy --user-name myuser --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess

৩. EC2 (Elastic Compute Cloud)

৩.১ ইন্সট্যান্স তৈরি

কমান্ডবর্ণনাউদাহরণ
aws ec2 run-instancesনতুন ইন্সট্যান্স।aws ec2 run-instances --image-id ami-123 --instance-type t2.micro --key-name mykey
aws ec2 describe-instancesইন্সট্যান্স তালিকা।aws ec2 describe-instances
aws ec2 start-instancesইন্সট্যান্স চালু।aws ec2 start-instances --instance-ids i-123
aws ec2 stop-instancesইন্সট্যান্স বন্ধ।aws ec2 stop-instances --instance-ids i-123

SSH দিয়ে সংযোগ:

ssh -i mykey.pem ec2-user@<public-ip>

৩.২ সিকিউরিটি গ্রুপ

  • তৈরি:
    aws ec2 create-security-group --group-name my-sg --description "My SG"
  • রুল যোগ:
    aws ec2 authorize-security-group-ingress --group-id sg-123 --protocol tcp --port 22 --cidr 0.0.0.0/0

৪. S3 (Simple Storage Service)

৪.১ বাকেট ম্যানেজমেন্ট

কমান্ডবর্ণনাউদাহরণ
aws s3 mbবাকেট তৈরি।aws s3 mb s3://mybucket
aws s3 lsবাকেট তালিকা।aws s3 ls
aws s3 rbবাকেট মুছে ফেলা।aws s3 rb s3://mybucket

৪.২ ফাইল ম্যানেজমেন্ট

কমান্ডবর্ণনাউদাহরণ
aws s3 cpফাইল আপলোড/ডাউনলোড।aws s3 cp file.txt s3://mybucket/
aws s3 syncফোল্ডার সিঙ্ক।aws s3 sync . s3://mybucket/
aws s3 rmফাইল মুছে ফেলা।aws s3 rm s3://mybucket/file.txt

পাবলিক অ্যাক্সেস:

aws s3api put-object-acl --bucket mybucket --key file.txt --acl public-read

৫. VPC (Virtual Private Cloud)

৫.১ VPC তৈরি

কমান্ডবর্ণনাউদাহরণ
aws ec2 create-vpcVPC তৈরি।aws ec2 create-vpc --cidr-block 10.0.0.0/16
aws ec2 create-subnetসাবনেট তৈরি।aws ec2 create-subnet --vpc-id vpc-123 --cidr-block 10.0.1.0/24

৫.২ ইন্টারনেট গেটওয়ে

  • তৈরি:
    aws ec2 create-internet-gateway
  • VPC-তে সংযুক্তি:
    aws ec2 attach-internet-gateway --internet-gateway-id igw-123 --vpc-id vpc-123

৬. RDS (Relational Database Service)

৬.১ ডাটাবেস তৈরি

কমান্ডবর্ণনাউদাহরণ
aws rds create-db-instanceDB তৈরি।aws rds create-db-instance --db-instance-identifier mydb --db-instance-class db.t2.micro --engine mysql --master-username admin --master-user-password mypass
aws rds describe-db-instancesDB তালিকা।aws rds describe-db-instances

৬.২ সংযোগ

  • MySQL ক্লায়েন্ট:
    mysql -h mydb.xxx.us-east-1.rds.amazonaws.com -u admin -p

৭. Lambda (Serverless Compute)

৭.১ ফাংশন তৈরি

  • কোড: index.js
exports.handler = async (event) => {
  return { statusCode: 200, body: "হ্যালো, AWS!" };
};
  • CLI দিয়ে:
    zip function.zip index.js
    aws lambda create-function --function-name myFunction --runtime nodejs18.x --role arn:aws:iam::123:role/lambda-role --handler index.handler --zip-file fileb://function.zip

৭.২ ইনভোক

aws lambda invoke --function-name myFunction output.json

৮. CloudFormation

৮.১ টেমপ্লেট

  • উদাহরণ: template.yaml
Resources:
  MyBucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: mybucket
  • ডিপ্লয়:
    aws cloudformation create-stack --stack-name mystack --template-body file://template.yaml

৮.২ স্ট্যাক ম্যানেজমেন্ট

কমান্ডবর্ণনাউদাহরণ
aws cloudformation describe-stacksস্ট্যাক তালিকা।aws cloudformation describe-stacks
aws cloudformation delete-stackস্ট্যাক মুছে ফেলা।aws cloudformation delete-stack --stack-name mystack

৯. ECS/EKS (Container Services)

৯.১ ECS (Elastic Container Service)

  • ক্লাস্টার তৈরি:
    aws ecs create-cluster --cluster-name mycluster
  • টাস্ক ডেফিনিশন:
{
  "family": "myapp",
  "containerDefinitions": [
    {
      "name": "myapp",
      "image": "nginx",
      "portMappings": [{ "containerPort": 80 }]
    }
  ]
}
aws ecs register-task-definition --cli-input-json file://task.json

৯.২ EKS (Elastic Kubernetes Service)

  • ক্লাস্টার তৈরি:
    aws eks create-cluster --name myeks --role-arn arn:aws:iam::123:role/eks-role --resources-vpc-config subnetIds=subnet-123,subnet-456
  • kubectl কনফিগ:
    aws eks update-kubeconfig --name myeks

১০. নেটওয়ার্কিং

১০.১ ELB (Elastic Load Balancer)

  • তৈরি:
    aws elbv2 create-load-balancer --name mylb --subnets subnet-123 subnet-456 --security-groups sg-123

১০.২ Route 53 (DNS)

  • হোস্টেড জোন:
    aws route53 create-hosted-zone --name example.com --caller-reference $(date +%s)
  • A রেকর্ড:
{
  "Changes": [
    {
      "Action": "CREATE",
      "ResourceRecordSet": {
        "Name": "www.example.com",
        "Type": "A",
        "TTL": 300,
        "ResourceRecords": [{ "Value": "1.2.3.4" }]
      }
    }
  ]
}
aws route53 change-resource-record-sets --hosted-zone-id Z123 --change-batch file://record.json

১১. মনিটরিং এবং লগিং

১১.১ CloudWatch

  • লগ গ্রুপ:
    aws logs create-log-group --log-group-name mylogs
  • মেট্রিক্স:
    aws cloudwatch put-metric-data --metric-name MyMetric --namespace MyApp --value 42

১১.২ CloudTrail

  • ট্রেইল তৈরি:
    aws cloudtrail create-trail --name mytrail --s3-bucket-name mybucket

১২. সার্ভারলেস আর্কিটেকচার

১২.১ API Gateway

  • API তৈরি:
    aws apigateway create-rest-api --name myapi

১২.২ DynamoDB

  • টেবিল তৈরি:
    aws dynamodb create-table --table-name mytable --attribute-definitions AttributeName=ID,AttributeType=S --key-schema AttributeName=ID,KeyType=HASH --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5

১৩. DevOps এবং CI/CD

১৩.১ CodePipeline

  • পাইপলাইন তৈরি:
{
  "pipeline": {
    "name": "mypipeline",
    "roleArn": "arn:aws:iam::123:role/pipeline-role",
    "stages": [
      {
        "name": "Source",
        "actions": [
          {
            "name": "Source",
            "actionTypeId": { "category": "Source", "owner": "AWS", "provider": "S3", "version": "1" },
            "configuration": { "S3Bucket": "mybucket", "S3ObjectKey": "source.zip" }
          }
        ]
      },
      {
        "name": "Deploy",
        "actions": [
          {
            "name": "Deploy",
            "actionTypeId": { "category": "Deploy", "owner": "AWS", "provider": "ECS", "version": "1" }
          }
        ]
      }
    ]
  }
}
aws codepipeline create-pipeline --cli-input-json file://pipeline.json

১৩.২ CodeBuild

  • বিল্ড প্রজেক্ট:
    aws codebuild create-project --name mybuild --source "{\"type\":\"S3\",\"location\":\"mybucket/buildspec.yml\"}" --artifacts "{\"type\":\"S3\",\"location\":\"mybucket\"}" --environment "{\"type\":\"LINUX_CONTAINER\",\"image\":\"aws/codebuild/standard:5.0\"}"

১৪. উদাহরণ: একটি সম্পূর্ণ অ্যাপ্লিকেশন

১৪.১ EC2 + S3 + Lambda

  • EC2: ওয়েব সার্ভার।
    aws ec2 run-instances --image-id ami-123 --instance-type t2.micro --key-name mykey --security-group-ids sg-123 --subnet-id subnet-123
  • S3: স্ট্যাটিক ফাইল।
    aws s3 mb s3://myappbucket
    aws s3 cp index.html s3://myappbucket/
  • Lambda: API।
    zip function.zip index.js
    aws lambda create-function --function-name myApi --runtime nodejs18.x --role arn:aws:iam::123:role/lambda-role --handler index.handler --zip-file fileb://function.zip

১৫. টিপস এবং সেরা অভ্যাস

  • IAM: কম অনুমতি (Least Privilege) নীতি অনুসরণ করুন।
  • ট্যাগিং: সব রিসোর্সে ট্যাগ যোগ করুন।
  • কস্ট মনিটরিং: AWS Budgets ব্যবহার করুন।
  • ব্যাকআপ: S3 এবং EBS স্ন্যাপশট নিয়মিত নিন।

On this page

১. এডব্লিউএস পরিচিতি
১.১ মৌলিক ধারণা
১.২ ইনস্টলেশন (AWS CLI)
১.৩ কনফিগারেশন
২. IAM (Identity and Access Management)
২.১ ব্যবহারকারী এবং গ্রুপ
২.২ পলিসি
৩. EC2 (Elastic Compute Cloud)
৩.১ ইন্সট্যান্স তৈরি
৩.২ সিকিউরিটি গ্রুপ
৪. S3 (Simple Storage Service)
৪.১ বাকেট ম্যানেজমেন্ট
৪.২ ফাইল ম্যানেজমেন্ট
৫. VPC (Virtual Private Cloud)
৫.১ VPC তৈরি
৫.২ ইন্টারনেট গেটওয়ে
৬. RDS (Relational Database Service)
৬.১ ডাটাবেস তৈরি
৬.২ সংযোগ
৭. Lambda (Serverless Compute)
৭.১ ফাংশন তৈরি
৭.২ ইনভোক
৮. CloudFormation
৮.১ টেমপ্লেট
৮.২ স্ট্যাক ম্যানেজমেন্ট
৯. ECS/EKS (Container Services)
৯.১ ECS (Elastic Container Service)
৯.২ EKS (Elastic Kubernetes Service)
১০. নেটওয়ার্কিং
১০.১ ELB (Elastic Load Balancer)
১০.২ Route 53 (DNS)
১১. মনিটরিং এবং লগিং
১১.১ CloudWatch
১১.২ CloudTrail
১২. সার্ভারলেস আর্কিটেকচার
১২.১ API Gateway
১২.২ DynamoDB
১৩. DevOps এবং CI/CD
১৩.১ CodePipeline
১৩.২ CodeBuild
১৪. উদাহরণ: একটি সম্পূর্ণ অ্যাপ্লিকেশন
১৪.১ EC2 + S3 + Lambda
১৫. টিপস এবং সেরা অভ্যাস