発生していた現象
- AWS Elastic Beanstalk からアプリケーションを作成しようとすると「The instance profile aws-elasticbeanstalk-ec2-role associated with the environment does not exist.」のというエラーメッセージが表示されてしまい環境構築に必ず失敗してしまう
- 強い権限があるはずのルートユーザで実行しても上記と同様のエラーで起動できなくなってしまっている
-
aws-elasticbeanstalk-ec2-role
ロールはIAMロールに定義されている
原因
AWS ElasticBeanstalkの初回のアプリケーション作成時にIAMロール(aws-elasticbeanstalk-ec2-role
および aws-elasticbeanstalk-service-role
)の自動作成を行うが、作成時のユーザの権限によって中途半端な状態でIAMロールが作成されてしまう場合がある。
一度IAMロールが作成されてしまうと、以降のElastic Beanstalkのアプリケーション作成時にそのIAMロールが使用されてしまうため、ルートユーザなど強い権限のユーザでもアプリケーション作成を行うことができない状態になってしまうと考えられる。
回避方法
1. IAMロールを操作できる権限のユーザで以下を実施
-
aws-elasticbeanstalk-ec2-role
ロールの削除 -
aws-elasticbeanstalk-service-role
ロールの削除
2. ElasticBeanstalkでアプリケーション作成を行うユーザにIAMロールの作成権限を付与
- https://docs.aws.amazon.com/ja_jp/emr/latest/ManagementGuide/emr-iam-roles-create-permissions.html に記載されている権限を付与する
3. ElasticBeanstalkでアプリケーション作成を行う
- 2.のユーザでElasticBeanstalkのアプリケーション作成を実施する
- 初回起動時に 1.で記載した2つのIAMロールが自動生成される