70 phút
AWS Core Services
Giới thiệu AWS
Amazon Web Services (AWS) là nền tảng cloud computing hàng đầu.
Compute Services
EC2 (Elastic Compute Cloud)
# Launch EC2 instance via AWS CLI
aws ec2 run-instances \
--image-id ami-0c02fb55956c7d316 \
--count 1 \
--instance-type t2.micro \
--key-name my-key-pair \
--security-group-ids sg-903004f8 \
--subnet-id subnet-6e7f829e
Lambda (Serverless)
// Lambda function handler
exports.handler = async (event) => {
console.log('Event:', JSON.stringify(event, null, 2));
const response = {
statusCode: 200,
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
message: 'Hello from Lambda!',
input: event,
}),
};
return response;
};
Storage Services
S3 (Simple Storage Service)
import boto3
# Create S3 client
s3 = boto3.client('s3')
# Upload file
s3.upload_file('local-file.txt', 'my-bucket', 'remote-file.txt')
# Download file
s3.download_file('my-bucket', 'remote-file.txt', 'local-file.txt')
# List objects
response = s3.list_objects_v2(Bucket='my-bucket')
for obj in response.get('Contents', []):
print(f"Key: {obj['Key']}, Size: {obj['Size']}")
EBS (Elastic Block Store)
- Persistent block storage for EC2
- Multiple volume types (gp3, io1, st1)
- Snapshots for backup
Database Services
RDS (Relational Database Service)
# Create RDS instance
aws rds create-db-instance \
--db-instance-identifier my-db \
--db-instance-class db.t3.micro \
--engine mysql \
--master-username admin \
--master-user-password password123 \
--allocated-storage 20
DynamoDB (NoSQL)
// DynamoDB document client
const { DynamoDBClient } = require("@aws-sdk/client-dynamodb");
const { DynamoDBDocumentClient, PutCommand } = require("@aws-sdk/lib-dynamodb");
const client = new DynamoDBClient({});
const docClient = DynamoDBDocumentClient.from(client);
// Put item
await docClient.send(new PutCommand({
TableName: "Users",
Item: {
UserId: "123",
Name: "John Doe",
Email: "john@example.com",
CreatedAt: new Date().toISOString()
}
}));
Networking & Content Delivery
VPC (Virtual Private Cloud)
# CloudFormation VPC template
Resources:
MyVPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.0.0.0/16
EnableDnsHostnames: true
Tags:
- Key: Name
Value: MyVPC
CloudFront (CDN)
- Global content delivery network
- Low latency
- DDoS protection
IAM (Identity and Access Management)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::my-bucket/*"
}
]
}
Bài tập thực hành
Hãy tạo architecture diagram cho ứng dụng web trên AWS!