ぷちスタディ@AWS eb deploy アクセスキーの取得

「Dockerによるアプリケーション開発環境構築ガイド」で始めるAWS ElasticBeanstalk環境構築でハマったツボを備忘録としてメモします。

今回は、AWS ElasticBeanstalk環境としてEC2, RDS, Redisキャッシュ, S3バケットコンテナを利用して Node.js プラットフォームによる簡単なToDoアプリ開発環境を構築してみました。

初回のサンプルページをデプロイしていよいよTodosアプリのコードを手入力で完成しましたが eb deploy コマンドで 「You are not authorized to perform this operation.」エラーが出て全く進めなくなりました。

「You are not authorized to perform this operation.」が発生したときの対処法 によるとユーザーポリシーを管理する IAM が不適切とのことでした。

しばらく見慣れない膨大なAWSポリシーの名前空間を彷徨っていましたが、アカウント名のIAMユーザーを作成して以下の許可ポリシーを追加、アクセスキーを設定するとデプロイに成功しました。

アクセスキーの取得にはAWS IAMのアカウントユーザーを作成して取得します。

アクセスキーの登録には 「aws configure」コマンドで設定します。

ERROR: NotAuthorizedError - Operation Denied. Access Denied
[ec2-user@ip-10-0-44-82 tasks]$ aws configure
AWS Access Key ID [****************FZ7J]: ASEDISEOFIGNDEDLFZ7J
AWS Secret Access Key [****************teEa]: xxxxxxxxxxxxxxxxxxxxtJgXtpaZC7hAteEa
Default region name [ap-northeast-1]:
Default output format [json]:

環境設定ファイルの作成は「eb init –interactive」で行いました。

[ec2-user@ip-10-0-44-82 tasks]$ eb init --interactive

Select a default region
1) us-east-1 : US East (N. Virginia)
2) us-west-1 : US West (N. California)
3) us-west-2 : US West (Oregon)
4) eu-west-1 : EU (Ireland)
5) eu-central-1 : EU (Frankfurt)
6) ap-south-1 : Asia Pacific (Mumbai)
7) ap-southeast-1 : Asia Pacific (Singapore)
8) ap-southeast-2 : Asia Pacific (Sydney)
9) ap-northeast-1 : Asia Pacific (Tokyo)
10) ap-northeast-2 : Asia Pacific (Seoul)
11) sa-east-1 : South America (Sao Paulo)
12) cn-north-1 : China (Beijing)
13) cn-northwest-1 : China (Ningxia)
14) us-east-2 : US East (Ohio)
15) ca-central-1 : Canada (Central)
16) eu-west-2 : EU (London)
17) eu-west-3 : EU (Paris)
18) eu-north-1 : EU (Stockholm)
19) eu-south-1 : EU (Milano)
20) ap-east-1 : Asia Pacific (Hong Kong)
21) me-south-1 : Middle East (Bahrain)
22) af-south-1 : Africa (Cape Town)
(default is 3): 9


Select an application to use
1) hi-appapi
2) [ Create new Application ]
(default is 2): 1


It appears you are using Node.js. Is this correct?
(Y/n): y
Select a platform branch.
1) Node.js 16 running on 64bit Amazon Linux 2
2) Node.js 14 running on 64bit Amazon Linux 2
(default is 1): 1

Cannot setup CodeCommit because there is no Source Control setup, continuing with initialization
Do you want to set up SSH for your instances?
(Y/n): y

Select a keypair.
1) appapi
2) my-key
3) [ Create new KeyPair ]
(default is 2): 1

環境ファイルを「eb list」で確認してから「eb deploy <環境envファイル>」でデプロイします。

[ec2-user@ip-10-0-44-82 tasks]$ eb list
* Hiappapi-env
[ec2-user@ip-10-0-44-82 tasks]$ eb deploy Hiappapi-env
Creating application version archive "app-230121_072526335779".
Uploading: [##################################################] 100% Done...
2023-01-21 07:25:29    INFO    Environment update is starting.
2023-01-21 07:25:36    INFO    Deploying new version to instance(s).
2023-01-21 07:25:40    INFO    Instance deployment: You didn't specify a Node.js version in the 'package.json' file in your source bundle. The deployment didn't install a specific Node.js version.
2023-01-21 07:25:43    INFO    Instance deployment completed successfully.
2023-01-21 07:25:52    INFO    New application version was deployed to running EC2 instances.
2023-01-21 07:25:52    INFO    Environment update completed successfully.

ブラウザからURLをクリックしてステータスに異常がなければアプリが表示されました。

まだまだAWSも Node.js も初心者ですがこれで環境構築が捗りました。ありがとうございました。

参考URL: EB CLI で eb init を実行した際に「Cannot setup CodeCommit because there is no Source Control setup, continuing with initialization」エラーが表示されてスタックする場合の対処方法 | DevelopersIO

AWS CLI でのリクエストで InvalidClientTokenId のエラーが発生しました。解決策を教えてください。 | DevelopersIO

ElasticBeanstalk permissions needed to deploy new version via AWS CLI

同じカテゴリーの記事

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です