Elastic Beanstalk 환경 간에 링크 생성 - AWS Elastic Beanstalk

Elastic Beanstalk 환경 간에 링크 생성

애플리케이션의 크기가 커지고 복잡해질수록, 개발과 운영 수명 주기가 다양한 구성 요소로 분할하고 싶을 수 있습니다. 잘 정의된 인터페이스를 통해 상호 작용을 하는 더 작은 서비스를 실행함으로써, 각 팀은 서로 독립적으로 업무를 수행할 수 있고 배포 시 발생하는 위험을 줄일 수 있습니다. AWS Elastic Beanstalk에서는 서로 의존하고 있는 구성 요소들 간에 정보를 공유하도록 사용자의 각 환경을 연결해줄 수 있습니다.

참고

Elastic Beanstalk는 현재 멀티컨테이너 Docker를 제외한 모든 플랫폼에 대한 환경 링크를 지원합니다.

환경 링크를 통해 애플리케이션의 구성 요소 환경 간 연결을 명명된 참조로 지정할 수 있습니다. 링크를 정의하는 환경을 생성할 때 Elastic Beanstalk는 링크와 동일한 이름을 가진 환경 변수를 설정합니다. 변수 값은 다른 구성 요소에 연결하는 데 사용할 수 있는 엔드포인트로, 웹 서버 또는 작업자 환경일 수 있습니다.

예를 들어 애플리케이션이 이메일 주소를 수집하는 프런트엔드와 수집된 이메일 주소로 환영 이메일을 보내는 작업자로 구성되어 있는 경우, 프런트엔드에 작업자 링크를 만들어 프런트엔드에서 작업자 엔드포인트(대기열 URL)를 자동으로 찾을 수 있게 합니다.

애플리케이션 소스의 루트의 env.yaml이라는 YAML 형식 파일인 환경 매니페스트에 다른 환경에 대한 링크를 정의합니다. 다음 매니페스트는 작업자라는 이름의 환경에 대한 링크를 정의합니다.

~/workspace/my-app/frontend/env.yaml

AWSConfigurationTemplateVersion: 1.1.0.0 EnvironmentLinks: "WORKERQUEUE": "worker"

위의 환경 매니페스트를 포함하는 애플리케이션 버전이 있는 환경을 생성할 때 Elastic Beanstalk에서 동일한 애플리케이션에 속한 worker라는 환경을 찾습니다. 해당 환경이 존재하는 경우, Elastic Beanstalk는 WORKERQUEUE라는 환경 속성을 만듭니다. WORKERQUEUE의 값은 Amazon SQS 대기열 URL입니다. 프런트엔드 애플리케이션은 동일한 방식으로 이 속성을 환경 변수로 읽습니다. 세부 정보는 환경 매니페스트(env.yaml) 섹션을 참조하세요.

환경 링크를 사용하려면 애플리케이션 소스에 환경 매니페스트를 추가한 후 EB CLI, AWS CLI 또는 SDK로 업로드합니다. AWS CLI 또는 SDK를 사용하는 경우, CreateApplicationVersion을 직접 호출할 때 process 플래그를 설정합니다.

$ aws elasticbeanstalk create-application-version --process --application-name my-app --version-label frontend-v1 --source-bundle S3Bucket="amzn-s3-demo-bucket",S3Key="front-v1.zip"

이 옵션은 애플리케이션 버전을 만들 때 소스 번들에서 구성 파일과 환경 매니페스트를 확인할 것을 Elastic Beanstalk에 지시합니다. EB CLI는 프로젝트 디렉터리에 환경 매니페스트가 있을 때 이 플래그를 자동적으로 설정합니다.

일반적으로 클라이언트를 사용하여 환경을 생성합니다. 환경을 종료해야 할 때, 먼저 링크로 환경을 종료합니다. 환경이 다른 환경에 연결되어 있는 경우, Elastic Beanstalk는 연결된 환경이 종료되지 못하게 합니다. 이 보호를 재정의하려면 ForceTerminate 플래그를 사용합니다. 이 파라미터는 AWS CLI에서 --force-terminate로 사용됩니다.

$ aws elasticbeanstalk terminate-environment --force-terminate --environment-name worker