글로벌(멀티 리전) 서버 구축 #02 - 리전 간 elastic beanstalk 구성 복제하기

‍이준성·2023년 2월 16일
0

elastic beanstalk은 기본적으로 구성 저장/로드 기능을 지원한다.
하지만, 구성 저장은 애플리케이션 별로 저장된다. 따라서, 다른 애플리케이션에서는 구성을 로드할 수 없고, 리전이 다른 경우도 당연히 불가능하다.

우리는 이 구성을 인위적으로 옮겨줄 것이다.
beanstalk의 구성 저장 기능은 구성 파일을 s3에 저장한다.
beanstalk의 구성으로 환경 시작 기능은 구성 파일을 사용해 환경을 생성한다.

다음과 같은 방식을 사용하면, 애플리케이션 A의 구성을 그대로 애플리케이션 B로 옮길 수 있다.

  1. A에서 구성을 저장한다.
  2. S3 리전에 맞는 s3 버킷으로 들어간다. (리전명-elasticbeanstalk)
  3. 구성파일 경로로 들어간다. (/resources/templates/애플리케이션 명)
  4. 해당 구성파일을 복사해서, B 애플리케이션의 위치에 붙여넣기한다.

위와 같은 방식으로 하면, B 애플리케이션에서도 같은 구성이 노출되는 것을 확인할 수 있다.

다만, 구성파일을 옮겼음에도 노출되지 않거나, 노출되더라도 적용이 되지 않는 경우가 있을 수 있다.
이는 생성 불가능한 구성이 포함되어있을 때 발생할 수 있다.

예를 들어, 리전에 의존적인 설정이 있을 경우 불가능하다.
리전 A에서 beanstalk A가 vpc A에 올라가있다고 하자. 리전 B에 beanstalk B의 구성 폴더에 위 구성을 그대로 옮긴다면, vpc A를 찾을 수 없어서 문제가 생긴다.

이러한 경우 해결책은 리전에 의존적인 항목들을 모두 수동으로 수정하는 수밖에 없다. 구성 파일은 yml인데, 필요한 부분만 수정하는 것은 그리 어렵지 않으므로 넘어간다.

단, 서버 구축 #01 에서처럼 vpc 피어링을 통해서 다른 리전에 접근해야할 경우, 구성 파일 수정 시 꼭 피어링된 vpc에 올라가도록 설정해주자.

0개의 댓글