The instance profile aws-elasticbeanstalk-ec2-role associated with the environment does not exist.
Elastic Beanstalk 환경 구성을 마치고, 기다리면 바로 환경이 종료되었다.
상태는 unknown이었다.
가장 처음 Elastic Beanstalk에 들어가서 애플리케이션 생성 버튼을 누르고, 환경을 설정한다. 여기서 '1단계. 환경구성'을 마치고 나면, '2단계. 서비스 엑세스 구성'을 한다. 이 때, Elastic Beanstalk가 서비스 역할로 담당할 IAM을 설정해줘야 한다. 이 부분은 AWS가 생성해주는대로 만들었다. 둘다 유형은 AWS 관리형이고, 각각의 역할 이름은 AWSElasticBeanstalkEnhancedHealth, AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy이 들어있다.
처음에는 여기까지만 했었고, 에러가 났다.
2단계에서는 EC2 인스턴스가 필요한 작업을 수행하도록 허용하는 관리형 정책이 있는 IAM 인스턴스 프로파일을 선택한다. 이 단계에 오기 앞서서, IAM에 가서 AWS 관리형인 AWSElasticBeanstalkMulticontainerDocker, AWSElasticBeanstalkWebTier, AWSElasticBeanstalkWorkerTier 권한을 부여받은 aws-elasticbeanstalk-ec2-role을 생성했다. 그리고 이 역할을 IAM 인스턴스 프로파일 선택 단계에서 매핑해주었다.
최근 AWS 보안 정책이 변경되어, Elastic Beanstalk은 직접 자신의 instance profile을 만들 수 없게 되었다. 그래서 EC2에 접근하는 필요한 권리를 부여받아야 한다. 원래는 자동으로 생성되었는데, 지금은 수동으로 직접 역할을 생성하고, 매핑해줘야 한다.
참고 : stackoverflow 관련 글