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 用户 凭证

  1. 登录 AWS 管理控制台,在顶部搜索栏输入“IAM”进入 IAM 控制台。
  2. 选择左侧导航栏的 “Users”(用户),点击相应的用户名称。
  3. 在 “Security credentials”(安全凭证)标签页下,滚动到 “Access keys” 区域。
  4. 点击 “Create access key”,系统会生成一对新的 Access Key IDSecret Access Key
    • AWS 只在你首次创建时显示 Secret Access Key,请妥善保存;如果丢失,需要重新创建一对新的。

你就可以把这对 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服务

  1. app.ts 中添加stack实例
  2. 如果有需要,相应config或者dynamodb的配置地方添加表的信息
  3. 添加stack代码文件
  4. 可以执行 cdk synth 查看生成的代码
  5. cdk diff 查看变更
  6. cdk deploy 部署
  7. 指定不同的账号执行cdk cdk deploy --profile dev-account
# 指定stack部署
cdk deploy WebSocketApiStack stack2

在已有基础设施上部署chime服务

这个还是很简单的,因为基础设施已经搭建好了,只需要在基础设施上部署 chime 服务。

  1. 克隆 chime js 的 repo
  2. 修改 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';
  3. 修改 template.yaml 的 region 信息
    - let region = 'us-east-1';
    + let region = 'ap-northeast-1';
  4. 去 demo/serverless 目录下
    cd demos/serverless
    npm install
    npm run deploy -- -r ap-northeast-1 -b <my-bucket> -s <my-stack-name> -a meeting