亚马逊云服务(AWS)简介
亚马逊云服务(Amazon Web Services,缩写为AWS)是亚马逊公司提供的一系列云计算服务。AWS提供了丰富的云服务,包括计算、存储、数据库、人工智能、机器学习等各种领域。
AWS计算服务
AWS提供了多种计算服务,包括弹性计算云(EC2)、自动扩展(Auto Scaling)、容器服务(ECS)、Lambda等。
弹性计算云(EC2)
弹性计算云(Elastic Compute Cloud,简称EC2)是AWS最常用的计算服务之一。它提供了可扩展的虚拟机实例,可以根据业务需求来自动调整实例数量和配置。以下是一个使用AWS SDK for Python(Boto3)的EC2示例代码:
import boto3
# 创建EC2客户端
ec2 = boto3.client('ec2')
# 创建EC2实例
response = ec2.run_instances(
ImageId='ami-0c94855ba95c71c99',
MinCount=1,
MaxCount=1,
InstanceType='t2.micro'
)
# 输出实例ID
instance_id = response['Instances'][0]['InstanceId']
print('创建的EC2实例ID:', instance_id)
自动扩展(Auto Scaling)
自动扩展(Auto Scaling)是AWS提供的一种自动调整计算资源的服务。它可以根据负载情况自动增减EC2实例的数量,以保持应用程序的可用性和性能。以下是一个使用AWS CLI的自动扩展示例:
# 创建自动扩展组
aws autoscaling create-auto-scaling-group \
--auto-scaling-group-name my-auto-scaling-group \
--launch-configuration-name my-launch-configuration \
--max-size 5 \
--min-size 1 \
--desired-capacity 2 \
--vpc-zone-identifier subnet-12345678
# 创建负载均衡器
aws elbv2 create-load-balancer \
--name my-load-balancer \
--subnets subnet-12345678 subnet-87654321 \
--security-groups sg-12345678
# 将负载均衡器与自动扩展组关联
aws autoscaling attach-load-balancers \
--auto-scaling-group-name my-auto-scaling-group \
--load-balancer-names my-load-balancer
容器服务(ECS)
容器服务(Elastic Container Service,简称ECS)是AWS提供的一种管理容器化应用程序的服务。它可以快速部署、运行和扩展容器。以下是一个使用AWS CLI的容器服务示例:
# 创建ECS集群
aws ecs create-cluster \
--cluster-name my-cluster
# 创建任务定义
aws ecs register-task-definition \
--family my-task-definition \
--execution-role-arn arn:aws:iam::123456789012:role/ecsTaskExecutionRole \
--network-mode awsvpc \
--cpu 256 \
--memory 512 \
--container-definitions '[
{
"name": "my-container",
"image": "nginx:latest",
"essential": true,
"portMappings": [
{
"containerPort": 80,
"protocol": "tcp"
}
]
}
]'
# 创建服务
aws ecs create-service \
--cluster my-cluster \
--service-name my-service \
--task-definition my-task-definition \
--desired-count 2 \
--launch-type FARGATE \
--network-configuration '{
"awsvpcConfiguration": {
"subnets": ["subnet-12345678", "subnet-87654321"],
"securityGroups": ["sg-12345678"],
"assignPublicIp": "ENABLED"
}
}'
Lambda
Lambda是AWS提供的一种无服务器计算服务,它可以运行代码而无需管理服务器。您可以使用多种编程语言编写Lambda函数,并将其与其他AWS服务集成。以下是一个使用AWS CLI的Lambda示例:
# 创建Lambda函数
aws lambda create-function \
--function-name my-function \
--runtime python3.8 \
--handler lambda_function.lambda_handler \
--code S3Bucket=my-bucket,S3Key=my-function.zip \
--role arn:aws:iam::123456789012:role/service-role/my