이번에는 AWS의 Elastic Beanstalk을 통해 지금까지 진행했던 프로젝트를 직접 배포해보기로 하였다.
Elastic Beanstalk
AWS EB란 upload 하는 것만으로 AWS 인프라에 애플리케이션을 쉽게 설정해주는 클라우드 배포 서비스이다.
EC2 같이 여러가지 세부적인 세팅을 하지 않고 간편하게 앱을 배포하고 싶을 때 사용할 수 있다.
장점
- 적은 비용으로 배포가 가능하다.
- 비교적 쉽게 서버를 설정하고 변경 가능하다.
- 간단하게 배포할 수 있다.
단점
서버의 세부적인 설정을 다루기 위해서는 .ebextensions에 대한 지식이 필요하다.
특정 언어에 대해서만 배포를 지원한다.
EB를 통해 배포를 해보는 것은 처음이었기 떄문에 여러가지 설정해 줘야할 것이 많았다.
문제상황
애플리케이션을 등록하려고 하던 중 다음과 같은 오류가 뜨고 상태가 unknown으로 되어 정상적으로 수행하지 못하였다.
The instance profile aws-elasticbeanstalk-ec2-role associated with the environment does not exist.
이것저것 시도해보면서 알아낸 것은 인스턴스 프로파일이 등록되지 않았다는 것이었다.
이유는 모르겠지만 자동으로 등록이 되어있지 않아 aws-elasticbeanstalk-ec2-role 규칙을 수동으로 등록했더니 해결되었다.
첫번째 오류를 해결하니 이번엔 새로운 오류를 볼 수 있었다.
Select a service role that has the 'AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy' managed policy.
이번에는 AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy를 가진 service 규칙을 선택하라는 메세지와 함께 정상적으로 수행되지 않았다.
이번에도 위와 비슷한 방식으로 해결했는데 aws-elasticbeanstalk-service-role 규칙을 새로 등록하고 필요한 정책을 추가하여 service를 만들어 주었다.
aws 공식 문서에서 두 가지 설정에 대해 나와있는데 추후에 어떻게 이 오류를 해결하는지에 대한 방법을 자세히 포스팅하도록 하겠다.
어려웠던 점, 개선할 점
비교적 간단한 EB를 통한 배포를 위한 준비였지만 처음 다뤄보는 서비스이다 보니 설정하는 것 부터 쉽지만은 않았다.
하지만 직접 오류를 맞닥뜨리고 해결하면서 전체적인 작동방식에 대해서 어렴풋이 알 수 있었고 사용하는 것에 대해 좀 더 익숙해질 수 있었다.
'study' 카테고리의 다른 글
[JSCODE] JWT를 이용한 로그인 구현 (2) | 2023.05.24 |
---|---|
[JSCODE] 회원가입, 로그인 기능 추가 (0) | 2023.05.20 |
[JSCODE] 유효성 검사, 예외처리 및 API 문서 작성 (0) | 2023.05.14 |
[JSCODE] 익명 게시판 서비스 개발 시작 (0) | 2023.05.11 |
[JSCODE] 스프링 스터디 회고 (0) | 2023.03.31 |