AWS 云服务平台
熟悉云服务平台,以 AWS 为例。
术语¶
Region¶
详见 区域和可用区。
AWS 数据中心被划分成多个区域,一个可用区由区域内的一个或多个数据中心构成,如 cn-north-1
。
AMI¶
EC2 镜像,用于创建 EC2 实例。
IAM 服务¶
AWS Identity and Access Management (IAM) 是一种 Web 服务,可以帮助您安全地控制对 AWS 资源的访问。可以使用 IAM 来控制谁通过了身份验证(准许登录)并获得授权(拥有权限)来使用资源。
EC2 服务¶
镜像¶
aws ec2 describe-images --owners self amazon
实例¶
# 创建 EC2 实例
aws ec2 run-instances --image-id ami-785db401 --count 1 --instance-type t2.micro
# 获取实例属性
aws ec2 describe-instance-attribute --instance i-8523b2a0e139985e0 --attribute instanceType
实例类型¶
详见 Amazon EC2 Instance Types - Amazon Web Services 。
EC2 实例类型决定了 CPU 性能、内存大小、磁盘容量和网络带宽等。
S3 服务¶
Amazon Simple Storage Service(Amazon S3)是一种对象存储服务。
对象¶
对象可以是任何类型的文件:文本文件、图片、视频等。
存储桶¶
存储桶是对象的容器。
托管静态网站¶
当您将存储桶配置为静态网站时,该网站在存储桶的 AWS 区域 特定的网站终端节点上可用
website — AWS CLI 1.25.41 Command Reference (amazon.com)
awslocal s3 website s3://my-bucket/ --index-document index.html --error-document error.html
awslocal s3 sync $HOME/Developer/Mine/mini-cloud/lab/site "s3://my-bucket"
open http://localhost:4566/my-bucket/index.html
DynamoDB 服务¶
Amazon DynamoDB 是一种全托管 NoSQL 数据库服务。
Lambda 服务¶
Lambda 是一项计算服务,可使您无需预置或管理服务器即可运行代码。
CloudFormation 服务¶
AWS CloudFormation 是一项服务,可帮助您对 AWS 资源进行建模和设置,以便能花较少的时间管理这些资源,而将更多的时间花在运行于 AWS 中的应用程序上。
CDK¶
npm i -g aws-cdk aws-cdk-local
cdklocal init sample-app --language javascript
cdklocal ls
cdklocal synth
cdklocal bootstrap
cdklocal deploy
open https://2gtnmgnupp.execute-api.localhost.localstack.cloud:4566/prod/
AWS CLI¶
AWS 命令行界面 (CLI) 是用于管理 AWS 服务的统一工具。
使用 AWS S3¶
s3 – 用于简化常见任务(如创建、操作和删除对象及存储桶)的执行的高级命令。
# 创建存储桶,aws s3 mb <target> [--options]
awslocal s3 mb s3://my-bucket
# 列出存储桶和对象,aws s3 ls <target> [--options]
awslocal s3 ls /my-bucket
# 删除存储桶,aws s3 rb <target> [--options]
# 删除对象,aws s3 rm <target> [--options]
# 移动对象,aws s3 mv <source> <target> [--options]
# 复制对象,aws s3 cp <source> <target> [--options]
# 同步对象,aws s3 sync <source> <target> [--options]
s3api – 提供对所有 Amazon S3 API 操作的直接访问,使您能够执行高级操作。
- put-bucket-policy — AWS CLI 2.7.20 Command Reference (amazonaws.com)
- put-public-access-block — AWS CLI 2.7.20 Command Reference (amazonaws.com)
# 应用自定义 ACL
awslocal s3api put-public-access-block --bucket my-bucket \
--public-access-block-configuration BlockPublicAcls=false,IgnorePublicAcls=false,BlockPublicPolicy=false,RestrictPublicBuckets=false
awslocal s3api put-bucket-policy --bucket my-bucket --policy file://policy.json
使用 AWS DynamoDB¶
awslocal dynamodb create-table --cli-input-json file://table.json
awslocal dynamodb batch-write-item --request-items file://data.json
awslocal dynamodb scan --table-name "Music"
使用 AWS IAM¶
create-role — AWS CLI 1.25.41 Command Reference (amazon.com)
awslocal iam create-role --role-name "localstack-execution-role" --assume-role-policy-document file://execution-role.json
awslocal iam create-role --role-name "localstack-trust-policy" --assume-role-policy-document file://trust-policy.json
awslocal iam list-roles
使用 AWS Lambda¶
zip function.zip index.js
awslocal lambda create-function --function-name my-function --zip-file fileb://function.zip --handler 'index.handler' --runtime nodejs14.x --role localstack-execution-role
awslocal lambda invoke --function-name my-function output.json --log-type Tail --query 'LogResult' --output text | base64 -d
awslocal lambda list-functions
使用 AWS CloudFormation¶
list-stacks — AWS CLI 1.25.41 Command Reference (amazon.com)
awslocal cloudformation list-stacks
awslocal cloudformation list-stack-resources --stack-name AppStack
资源¶
- AWS 文档。
- 什么是 IAM? - AWS Identity and Access Management (amazon.com)
- 什么是 Amazon S3? - Amazon Simple Storage Service
- 什么是 AWS Command Line Interface? - AWS Command Line Interface (amazon.com)
- 通过 AWS CLI 使用 AWS 服务 - AWS Command Line Interface (amazon.com)
- 将速记语法与 AWS CLI 结合使用 - AWS Command Line Interface (amazon.com)
- 使用 Amazon S3 托管静态网站 - Amazon Simple Storage Service
- 使用 REST API 提出请求 - Amazon Simple Storage Service
- 什么是 Amazon DynamoDB?
- 结合使用 Amazon DynamoDB 与 AWS CLI - AWS Command Line Interface
- 从 AWS CLI 使用 AWS Identity and Access Management - AWS Command Line Interface (amazon.com)
- 什么是 AWS Lambda? - AWS Lambda (amazon.com)
- 使用 Node.js 构建 Lambda 函数 - AWS Lambda (amazon.com)
- What is the AWS CDK? - AWS Cloud Development Kit (AWS CDK) v2 (amazon.com)
- 什么是 AWS CloudFormation? - AWS CloudFormation (amazon.com)