Aws Infrastructureインフラ
终于有机会摸到这个地方了,好好记录一下。用 cdk 写一个简单的 aws 基础设施。之前都是在网页上各种配置点,其实还真是有更好的管理方法的,想想也是,毕竟代码才是可追溯的,网页操作效率低还不能回溯。
cdk 还是方便的,用 typescript 写,然后编译成 js 文件,然后执行,能提前对比修改的地方,还能一键部署。
本地aws多账号管理
在本地使用 AWS CLI 时,要查看当前正在使用的身份(通常是所使用的 AWS 账户 ID、IAM 用户或者角色),可以使用以下命令:
aws sts get-caller-identity
~/.aws/credentials
这里是所有的配置aws configure list
查看配置aws configure
会设置账号,参考查看取得IAM用户凭证
配置完后,在 ~/.aws/credentials
文件中可以看到新增的账号配置
[default]
aws_access_key_id = AKIAXXXXXXXXXXXXX
aws_secret_access_key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[dev]
aws_access_key_id = AKIAYYYYYYYYYYYY
aws_secret_access_key = yyyyyyyyyyyyyyyyyyyyyyyyyyyyy
[prod]
aws_access_key_id = AKIAZZZZZZZZZZZZ
aws_secret_access_key = zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
查看取得IAM用户凭证
使用的是 IAM 用户 凭证
- 登录 AWS 管理控制台,在顶部搜索栏输入“IAM”进入 IAM 控制台。
- 选择左侧导航栏的 “Users”(用户),点击相应的用户名称。
- 在 “Security credentials”(安全凭证)标签页下,滚动到 “Access keys” 区域。
- 点击 “Create access key”,系统会生成一对新的
Access Key ID
和Secret Access Key
。- AWS 只在你首次创建时显示
Secret Access Key
,请妥善保存;如果丢失,需要重新创建一对新的。
- AWS 只在你首次创建时显示
你就可以把这对 Key 在 aws configure
中填写:
aws configure
AWS Access Key ID [None]: AKIAxxx...
AWS Secret Access Key [None]: xxxxxxxx...
Default region name [None]: us-east-1
Default output format [None]: json
在已有基础设施上部署websocket服务
- 在
app.ts
中添加stack实例 - 如果有需要,相应config或者dynamodb的配置地方添加表的信息
- 添加stack代码文件
- 可以执行
cdk synth
查看生成的代码 cdk diff
查看变更cdk deploy
部署- 指定不同的账号执行cdk
cdk deploy --profile dev-account
# 指定stack部署
cdk deploy WebSocketApiStack stack2
在已有基础设施上部署chime服务
这个还是很简单的,因为基础设施已经搭建好了,只需要在基础设施上部署 chime 服务。
- 克隆 chime js 的 repo
- 修改 deplog.js 的 region 信息
- let region = 'us-east-1'; + let region = 'ap-northeast-1'; - let chimeSDKMeetingsEndpoint = 'https://meetings-chime.us-east-1.amazonaws.com'; + let chimeSDKMeetingsEndpoint = 'https://meetings-chime.ap-northeast-1.amazonaws.com'; - let mediaPipelinesControlRegion = 'us-east-1'; + let mediaPipelinesControlRegion = 'ap-northeast-1';
- 修改 template.yaml 的 region 信息
- let region = 'us-east-1'; + let region = 'ap-northeast-1';
- 去 demo/serverless 目录下
cd demos/serverless npm install npm run deploy -- -r ap-northeast-1 -b <my-bucket> -s <my-stack-name> -a meeting