Elastic Beanstalk 환경에 데이터베이스 추가 - AWS Elastic Beanstalk

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Elastic Beanstalk 환경에 데이터베이스 추가

Elastic Beanstalk는 Amazon Relational Database Service(Amazon RDS)와의 통합을 제공합니다. Elastic Beanstalk를 사용하여 기존 환경 또는 새 환경 생성 시 새 환경에 MySQL, PostgreSQL, Oracle 또는 SQL Server 데이터베이스를 추가할 수 있습니다. 데이터베이스 인스턴스를 추가하면 Elastic Beanstalk가 애플리케이션에 연결 정보를 제공합니다. 데이터베이스 호스트 이름, 포트, 사용자 이름, 암호 및 데이터베이스 이름의 환경 속성을 설정하여 수행합니다.

이전에 애플리케이션에서 데이터베이스 인스턴스를 사용하지 않은 경우, 먼저 이 주제에 설명된 프로세스를 사용하여 Elastic Beanstalk 서비스를 사용해 테스트 환경에 데이터베이스를 하나 추가하는 것이 좋습니다. 이렇게 하면 Elastic Beanstalk 외부 데이터베이스에 필요한 추가 구성 작업 없이 애플리케이션이 환경 속성을 읽고 연결 문자열을 구성하며 데이터베이스 인스턴스에 연결할 수 있는지 확인할 수 있습니다.

애플리케이션이 데이터베이스에서 올바르게 작동하는지 확인한 후 프로덕션 환경으로의 이동을 고려할 수 있습니다. 이 시점에 데이터베이스를 Elastic Beanstalk 환경에서 분리하여 유연성이 뛰어난 구성으로 이동할 수 있습니다. 분리된 데이터베이스는 외부 Amazon RDS 데이터베이스 인스턴스로 계속 작동할 수 있습니다. 환경의 상태는 데이터베이스를 분리해도 영향을 받지 않습니다. 환경을 종료해야 하는 경우 환경을 종료할 수 있으며 Elastic Beanstalk 외부에서 데이터베이스를 사용 가능하고 작동하도록 유지하는 옵션을 선택할 수도 있습니다.

외부 데이터베이스를 사용하면 몇 가지 장점이 있습니다. 여러 환경에서 외부 데이터베이스에 연결하고, 통합 데이터베이스에서 지원되지 않는 데이터베이스 유형을 사용하고, 블루/그린 배포를 수행할 수 있습니다. Elastic Beanstalk가 생성한 분리된 데이터베이스를 사용하는 대신 Elastic Beanstalk 환경 외부에서 데이터베이스 인스턴스를 생성할 수도 있습니다. Elastic Beanstalk 환경 외부에 있는 데이터베이스 인스턴스를 사용할 경우 추가 보안 그룹과 연결 문자열 구성이 필요합니다. 자세한 내용은 Amazon RDS와 함께 Elastic Beanstalk 사용을(를) 참조하세요.

데이터베이스 수명 주기

Elastic Beanstalk 환경에서 데이터베이스를 분리한 후 데이터베이스에서 수행할 작업을 선택할 수 있습니다. 선택할 수 있는 옵션을 총칭하여 삭제 정책이라고 합니다. 다음 삭제 정책은 Elastic Beanstalk 환경에서 분리하거나 Elastic Beanstalk 환경을 종료한 이후에 데이터베이스에 적용됩니다.

  • 스냅샷 - Elastic Beanstalk가 데이터베이스를 종료하기 전에 데이터베이스의 스냅샷을 저장합니다. Elastic Beanstalk 환경에 DB 인스턴스를 추가하거나 독립형 데이터베이스를 생성할 때 스냅샷에서 데이터베이스를 복원할 수 있습니다. 스냅샷에서 새 독립형 DB 인스턴스를 생성하는 방법에 대한 자세한 내용은 Amazon RDS 사용 설명서DB 스냅샷에서 복원을 참조하세요. 데이터베이스 스냅샷 저장에 대한 요금이 발생할 수 있습니다. 자세한 내용은 Amazon RDS 요금Backup 스토리지 섹션을 참조하세요.

  • 삭제 - Elastic Beanstalk에서 데이터베이스를 종료합니다. 종료된 후에는 데이터베이스 인스턴스를 더 이상 작업에 사용할 수 없습니다.

  • 보관 - 데이터베이스 인스턴스가 종료되지 않았습니다. Elastic Beanstalk에서 분리되어 있지만 사용 가능하며 작동 상태를 유지합니다. 그런 다음 하나 이상의 환경을 구성하여 외부 Amazon RDS 데이터베이스 인스턴스로 데이터베이스에 연결하도록 할 수 있습니다. 자세한 내용은 Amazon RDS와 함께 Elastic Beanstalk 사용을(를) 참조하세요.

콘솔을 사용하여 환경에 Amazon RDS DB 인스턴스 추가

Elastic Beanstalk 콘솔을 사용하여 환경에 DB 인스턴스를 추가할 수 있습니다.

환경에 DB 인스턴스를 추가하려면
  1. Elastic Beanstalk 콘솔을 연 다음 리전 목록에서 해당 AWS 리전을 선택합니다.

  2. 탐색 창에서 환경을 선택한 다음 목록에서 환경 이름을 선택합니다.

    참고

    여러개의 환경을 보유한 경우 검색 창을 통해 환경 목록을 필터링합니다.

  3. 탐색 창에서 구성을 선택합니다.

  4. 데이터베이스 구성 범주에서 편집을 선택합니다.

  5. DB 엔진을 선택하고 사용자 이름과 암호를 입력합니다.

  6. 변경 사항을 저장하려면 페이지 하단에서 적용을 선택합니다.

다음 옵션을 구성할 수 있습니다.

  • 스냅샷 - 기존 데이터베이스 스냅샷을 선택합니다. Elastic Beanstalk는 스냅샷을 복원하여 환경에 추가합니다. 기본값은 없음입니다. 기본값은 없음이며, 이 페이지의 다른 설정을 사용하여 새 데이터베이스를 구성할 수 있습니다.

  • 엔진(Engine) - 데이터베이스 엔진을 선택합니다.

  • 엔진 버전(Engine version) - 데이터베이스 엔진의 특정 버전을 선택합니다.

  • 인스턴스 클래스(Instance class) - DB 인스턴스 클래스를 선택합니다. DB 인스턴스 클래스에 대한 자세한 내용은 http://aws.amazon.com/rds/를 참조하세요.

  • 스토리지(Storage) - 데이터베이스에 프로비저닝할 스토리지 양을 선택합니다. 나중에 할당된 스토리지를 늘릴 수 있으나 줄일 수는 없습니다. 스토리지 할당에 대한 자세한 내용은 기능 단원을 참조하세요.

  • 사용자 이름 - 숫자와 문자만 조합하여 사용자 이름을 입력합니다.

  • 암호(Password) - 8~16자의 인쇄 가능한 ASCII 문자(/, \@ 제외)가 포함된 암호를 입력합니다.

  • 가용성(Availability) - 고가용성을 위해 두 번째 가용 영역에서 웜 백업을 실행하려면 높음(다중 AZ)을 선택합니다.

  • 데이터베이스 삭제 정책 - 삭제 정책에 따라 사용자 환경에서 분리된 후 데이터베이스가 어떻게 되는지 결정됩니다. 이는 Create Snapshot, Retain 또는 Delete 값 중 하나로 설정할 수 있습니다. 이러한 값은 같은 주제의 데이터베이스 수명 주기에 설명되어 있습니다.

참고

제공한 사용자 이름과 암호를 사용하여 Elastic Beanstalk는 데이터베이스에 대한 마스터 사용자를 생성합니다. 마스터 사용자와 그 권한에 대해 자세히 알아보려면 마스터 사용자 계정 권한 단원을 참조하세요.

DB 인스턴스를 추가하는 데 약 10분이 걸립니다. 업데이트가 완료되면 새 데이터베이스가 환경에 결합됩니다. 다음 환경 속성을 통해 애플리케이션에서 DB 인스턴스의 호스트 이름과 기타 연결 정보를 사용할 수 있습니다.

속성 이름 설명 속성 값

RDS_HOSTNAME

DB 인스턴스의 호스트 이름입니다.

Amazon RDS 콘솔 연결 및 보안 탭의 엔드포인트입니다.

RDS_PORT

DB 인스턴스가 연결을 허용하는 포트입니다. DB 엔진마다 기본값이 다릅니다.

Amazon RDS 콘솔 연결 및 보안 탭의 포트입니다.

RDS_DB_NAME

데이터베이스 이름은 ebdb입니다.

Amazon RDS 콘솔 구성 탭의 DB 이름입니다.

RDS_USERNAME

데이터베이스에 구성된 사용자 이름입니다.

Amazon RDS 콘솔 구성 탭의 마스터 사용자 이름입니다.

RDS_PASSWORD

데이터베이스에 구성된 암호입니다.

Amazon RDS 콘솔에서 참조용 정보를 사용할 수 없습니다.

데이터베이스에 연결

연결 정보를 사용하여 환경 변수를 통해 애플리케이션 내에서 데이터베이스에 연결합니다. 애플리케이션에서 Amazon RDS를 사용하는 방법에 대한 자세한 내용은 다음 주제를 참조하십시오.

콘솔을 사용하여 통합 RDS DB 인스턴스 구성

Elastic Beanstalk 콘솔에 있는 환경의 구성 페이지의 데이터베이스(Database) 섹션에서 데이터터베이스 인스턴스의 구성 설정을 보고 수정할 수 있습니다.

Elastic Beanstalk 콘솔에서 환경의 DB 인스턴스를 구성하려면
  1. Elastic Beanstalk 콘솔을 연 다음 리전(Regions) 목록에서 해당 AWS 리전을 선택합니다.

  2. 탐색 창에서 환경을 선택한 다음 목록에서 환경 이름을 선택합니다.

    참고

    여러개의 환경을 보유한 경우 검색 창을 통해 환경 목록을 필터링합니다.

  3. 탐색 창에서 구성을 선택합니다.

  4. 데이터베이스 구성 범주에서 편집을 선택합니다.

데이터베이스를 생성한 후 인스턴스 클래스, 스토리지, 암호, 가용성데이터베이스 삭제 정책 설정을 수정할 수 있습니다. 인스턴스 클래스를 변경하면 Elastic Beanstalk에서 DB 인스턴스를 다시 프로비저닝합니다.

데이터베이스를 환경에 연결하는 데 Elastic Beanstalk가 더 이상 필요하지 않은 경우 데이터베이스 분리를 선택하여 데이터베이스를 분리하도록 선택할 수 있습니다. 이 작업과 관련된 옵션 및 고려 사항을 이해하는 것이 중요합니다. 자세한 내용은 콘솔을 사용하여 RDS DB 인스턴스 분리 섹션을 참조하세요.

경고

Elastic Beanstalk의 기능 범위를 넘어서서 연결된 데이이터페이스 인스턴스 설정을 수정하지 마세요(예: Amazon RDS 콘솔에서 수정). 수정할 경우 Amazon RDS DB 구성이 해당 환경 정의와 동기화되지 않을 수 있습니다. 환경을 업데이트하거나 다시 시작하면 환경에 지정된 설정이 Elastic Beanstalk 외부에서 이루어진 모든 설정을 덮어씁니다.

Elastic Beanstalk에서 직접 지원하지 않는 설정을 수정해야 하는 경우 Elastic Beanstalk 구성 파일을 사용합니다.

구성 파일을 사용하여 통합 RDS DB 인스턴스 구성

구성 파일을 사용하여 환경의 데이터베이스 인스턴스를 구성할 수 있습니다. aws:rds:dbinstance 네임스페이스의 옵션을 사용하십시오. 다음 예제는 할당된 데이터베이스 스토리지 크기를 100GB를 수정합니다.

예 .ebextensions/db-instance-options.config
option_settings: aws:rds:dbinstance: DBAllocatedStorage: 100

Elastic Beanstalk가 지원하지 않는 DB 인스턴스 속성을 구성하려는 경우 구성 파일을 사용할 수 있으며 resources 키를 사용하여 설정을 지정할 수 있습니다. 다음 예제는 값을 StorageTypeIops Amazon RDS 속성으로 설정합니다.

예 .ebextensions/db-instance-properties.config
Resources: AWSEBRDSDatabase: Type: AWS::RDS::DBInstance Properties: StorageType:io1 Iops: 1000

콘솔을 사용하여 RDS DB 인스턴스 분리

환경의 상태에 영향을 주지 않고 Elastic Beanstalk 환경에서 데이터베이스를 분리할 수 있습니다. 데이터베이스를 분리하기 전에 다음 요구 사항을 고려하세요.

  • 데이터베이스가 분리된 후 데이터베이스는 어떻게 될까요?

    데이터베이스의 스냅샷을 생성한 다음 종료하거나, 데이터베이스를 Elastic Beanstalk 외부의 독립 실행형 데이터베이스로 유지하거나, 데이터베이스를 영구적으로 삭제하도록 선택할 수 있습니다. 데이터베이스 삭제 정책 설정에 따라 이 결과가 결정됩니다. 삭제 정책에 대한 자세한 설명은 같은 주제의 데이터베이스 수명 주기을(를) 참조하세요.

  • 분리하기 전에 데이터베이스 구성 설정을 변경해야 하나요?

    데이터베이스에 구성을 변경해야 하는 경우, 데이터베이스를 분리하기 전에 구성을 적용해야 합니다. 여기에는 데이터베이스 삭제 정책에 대한 변경 사항이 포함됩니다. 데이터베이스 분리 설정과 동시에 제출되는 보류 중인 모든 변경 사항은 무시되며, 분리 설정만 적용됩니다.

환경에서 DB 인스턴스 분리하기
  1. Elastic Beanstalk 콘솔을 연 다음 리전(Regions) 목록에서 해당 AWS 리전을 선택합니다.

  2. 탐색 창에서 환경을 선택한 다음 목록에서 환경 이름을 선택합니다.

    참고

    여러개의 환경을 보유한 경우 검색 창을 통해 환경 목록을 필터링합니다.

  3. 탐색 창에서 구성을 선택합니다.

  4. 데이터베이스 구성 범주에서 편집을 선택합니다.

  5. 데이터베이스 설정 섹션의 모든 구성 값을 검토합니다. 특히 데이터베이스가 분리된 후 데이터베이스에 어떤 일이 발생하는지 결정하는 데이터베이스 삭제 정책을 검토합니다.

    다른 구성 설정이 모두 올바르면 6단계로 건너뛰어 데이터베이스를 분리합니다.

    주의

    데이터베이스 삭제 정책 설정을 데이터베이스 분리별도로 적용해야 합니다. 데이터베이스 분리 및 새로 선택한 데이터베이스 삭제 정책 모두를 저장할 의도로 적용을 선택한 경우, 선택한 새 삭제 정책이 무시됩니다. Elastic Beanstalk는 우선 순위로 설정된 삭제 정책에 따라 데이터베이스를 분리합니다. 우선 순위로 설정된 삭제 정책이 Delete 또는 Create Snapshot인 경우 예정된 보류 중인 정책을 따르는 대신 데이터베이스가 손실될 위험이 있습니다.

    업데이트가 필요한 구성이 있는 경우 다음을 수행합니다.

    1. 데이터베이스 설정 패널에서 필요한 수정 작업을 수행합니다.

    2. 적용을 선택합니다. 데이터베이스의 구성 변경 사항을 저장하는 데 몇 분 정도 걸립니다.

    3. 3단계로 돌아가서 탐색 창에서 구성을 선택합니다.

  6. 창의 데이터베이스 연결 섹션으로 이동합니다.

  7. 데이터베이스 분리를 선택합니다.

  8. 적용을 선택하여 데이터베이스 분리 작업을 시작합니다.

삭제 정책 설정은 데이터베이스의 결과와 데이터베이스를 분리하는 데 필요한 시간을 결정합니다.

  • 삭제 정책이 Delete(으)로 설정된 경우 데이터베이스가 삭제됩니다. 데이터베이스 크기에 따라 작업이 약 10~20분이 소요될 수 있습니다.

  • 삭제 정책이 Snapshot(으)로 설정된 경우 데이터베이스의 스냅샷이 생성됩니다. 그런 다음 데이터베이스가 삭제됩니다. 이 프로세스에 필요한 시간은 데이터베이스 크기에 따라 다릅니다.

  • 삭제 정책이 Retain(으)로 설정된 경우 Elastic Beanstalk 환경 외부에서 데이터베이스가 계속 작동합니다. 일반적으로 데이터베이스를 분리하는 데 5분 미만이 걸립니다.

Elastic Beanstalk 환경 외부에 데이터베이스를 유지하기로 결정한 경우 이를 구성하기 위해 추가 단계를 수행해야 합니다. 자세한 내용은 Amazon RDS와 함께 Elastic Beanstalk 사용을(를) 참조하세요. 프로덕션 환경에 대해 분리된 데이터베이스를 사용하려는 경우 데이터베이스에서 사용하는 스토리지 유형이 워크로드에 적합한지 확인합니다. 자세한 내용은 Amazon RDS 사용 설명서DB 인스턴스 스토리지DB 인스턴스 수정을 참조하세요.

구성 파일을 사용하여 RDS DB 인스턴스 분리

환경의 상태에 영향을 주지 않고 DB 인스턴스를 Elastic Beanstalk 환경에서 분리할 수 있습니다. 데이터베이스 인스턴스는 데이터베이스가 분리될 때 적용된 데이터베이스 삭제 정책을 따릅니다.

데이터베이스를 분리하는 데 필요한 두 옵션 모두 aws:rds:dbinstance 네임스페이스 내에 있습니다. 내용은 다음과 같습니다.

  • DBDeletionPolicy 옵션은 삭제 정책을 설정합니다. 이는 Snapshot, Delete 또는 Retain 값 중 하나로 설정할 수 있습니다. 이러한 값은 같은 주제의 데이터베이스 수명 주기에 설명되어 있습니다.

  • HasCoupledDatabase 옵션은 환경에 연결된 데이터베이스가 있는지 여부를 결정합니다.

    • true(으)로 토글된 경우, Elastic Beanstalk는 사용자 환경에 연결된 새 DB 인스턴스를 생성합니다.

    • false(으)로 토글된 경우, Elastic Beanstalk가 DB 인스턴스를 사용자 환경에서 분리하기 시작합니다.

분리하기 전에 데이터베이스 구성을 변경하려는 경우 먼저 구성 변경 사항을 별도의 작업에 적용합니다. 여기에는 DBDeletionPolicy 구성 변경이 포함됩니다. 변경 사항을 적용한 후 별도의 명령을 실행하여 분리 옵션을 설정합니다. 다른 구성 설정과 분리 설정을 동시에 제출하면 분리 설정이 적용되는 동안 다른 구성 옵션 설정은 무시됩니다.

주의

DBDeletionPolicyHasCoupledDatabase 설정을 두 개의 개별 작업으로 적용하려면 명령을 실행해야 합니다. 활성 삭제 정책이 이미 Delete 또는 Snapshot(으)로 설정된 경우 데이터베이스가 손실될 위험이 있습니다. 데이터베이스는 사용자가 의도한 보류 중인 삭제 정책이 아니라 현재 활성 상태인 삭제 정책을 따릅니다.

환경에서 DB 인스턴스 분리하기

Elastic Beanstalk 환경에서 데이터베이스를 분리하려면 다음 단계를 수행합니다. EB CLI 또는 AWS CLI을(를) 사용하여 단계를 완료합니다. 자세한 내용은 구성 파일로 고급 환경 사용자 지정을 참조하세요.

  1. 삭제 정책을 변경하려는 경우 다음 형식으로 구성 파일을 설정합니다. 이 예에서는 삭제 정책이 유지되도록 설정되어 있습니다.

    option_settings: aws:rds:dbinstance: DBDeletionPolicy: Retain
  2. 원하는 도구를 사용하여 명령을 실행하여 구성 업데이트를 완료합니다.

  3. 설정할 구성 파일을 HasCoupledDatabase에서 false(으)로 설정합니다.

    option_settings: aws:rds:dbinstance: HasCoupledDatabase: false
  4. 원하는 도구를 사용하여 명령을 실행하여 구성 업데이트를 완료합니다.

삭제 정책 설정은 데이터베이스의 결과와 데이터베이스를 분리하는 데 필요한 시간을 결정합니다.

  • 삭제 정책이 Delete(으)로 설정된 경우 데이터베이스가 삭제됩니다. 데이터베이스 크기에 따라 작업이 약 10~20분이 소요될 수 있습니다.

  • 삭제 정책이 Snapshot(으)로 설정된 경우 데이터베이스의 스냅샷이 생성됩니다. 그런 다음 데이터베이스가 삭제됩니다. 이 프로세스에 필요한 시간은 데이터베이스 크기에 따라 다릅니다.

  • 삭제 정책이 Retain(으)로 설정된 경우 Elastic Beanstalk 환경 외부에서 데이터베이스가 계속 작동합니다. 일반적으로 데이터베이스를 분리하는 데 5분 미만이 걸립니다.

Elastic Beanstalk 환경 외부에 데이터베이스를 유지하기로 결정한 경우 이를 구성하기 위해 추가 단계를 수행해야 합니다. 자세한 내용은 Amazon RDS와 함께 Elastic Beanstalk 사용을(를) 참조하세요. 프로덕션 환경에 대해 분리된 데이터베이스를 사용하려는 경우 데이터베이스에서 사용하는 스토리지 유형이 워크로드에 적합한지 확인합니다. 자세한 내용은 Amazon RDS 사용 설명서DB 인스턴스 스토리지DB 인스턴스 수정을 참조하세요.