serverless framework でAWSアカウントを切り替える

AWSプロフィールを指定してデプロイする

$ serverless deplosy --aws-profile プロフィール名

デプロイ時にオプションで、「–aws-profile プロフィール名」をつけてデプロイするとAWSプロフィールを指定してデプロイすることができます。

何も指定せずデプロイすると、[default]プロフィールにデプロイしてしまいます。

(私はこれを知らずに、関係ないアプリをクライアント様のAWSプロフィールにデプロイしてしまいました。。)

デプロイするAWSプロフィールを確認する方法

serverless frameworkやamplifyなどのCLIでデプロイするAWSプロフィールは、

~/.aws/credentials

で管理されています。

デプロイ先のAWSプロフィール情報を確認してみましょう。

$ vim ~/.aws/credentials
[default]
aws_access_key_id=XXXXXXXXXXXXXXXXXXXXXXXXXXX
aws_secret_access_key=xxxxxxxxxxxxxxxxxxxxxxxxxxx

ここで初期設定されたIAMユーザーのアクセスキーとシークレットキーが登録されています。

通常、 $ serverless deploy をするとこの IAMユーザーのいるAWSプロフィールへデプロイされます。

AWSプロフィールを追加を追加する方法

私はamplifyとserverless frameworkを両方使っているので、amplifyを使ってAWSプロフィールを追加しました。

$ amplify configure

AWSプリフィールへのログイン、IAMユーザーの作成とAPIキーの登録、プロフィール名の入力が求められます。

このあと、AWSプロフィールを確認すると先ほど入力したプロフィール名が追加されているはずです。(プロフィール名をdefaultにするとAPIキーが上書きされています)

[default]
aws_access_key_id=XXXXXXXXXXXXXXXXXXXXXXXXXXX
aws_secret_access_key=xxxxxxxxxxxxxxxxxxxxxxxxxxx

[testAWS]
aws_access_key_id=YYYYYYYYYYYYYYYYYYYYYYYYYYYYY
aws_secret_access_key=yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy

また、リージョンの確認は次のファイルから確認できます。

$ vim ~/.aws/config
[default]
region=ap-northeast-1

[profile testAWS]
region=ap-northeast-1

これでデプロイするAWSプロフィールの追加が完了しました。

まとめ

・$ cat ~/.asw/credentials でAWSプロフィールを確認しよう

・$ sls deploy –aws-profile XXX を癖付けよう

複数のアプリ開発をしていたときに、意図せず全然違うAWSプロフィールへデプロイしてしまったので、備忘録として残します。

結構あるあるなトラブルだと思いますが、間違えると超ヤバイので絶対に間違えないようにしましょう!!

コメント