亚马逊云服务(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