View a markdown version of this page

Active Directory 도메인에 인스턴스 조인 - AWS Elastic Beanstalk

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

Active Directory 도메인에 인스턴스 조인

를 사용하면 환경 AWS Elastic Beanstalk의 Windows Server 인스턴스가 자동으로 Active Directory 도메인에 조인할 수 있습니다. AWS Directory Service를 사용하여 디렉터리를 관리하고 aws:elasticbeanstalk:windows:activedirectory 네임스페이스에서 구성 옵션을 사용하여 조인을 켭니다. 그러면 Elastic Beanstalk가 애플리케이션을 배포하기 전에 각 인스턴스가 시작될 때 도메인에 조인됩니다. 사용자 지정 조인 로직을 작성하거나 조인을 직접 관리하지 않습니다.

AD Connector를 통해 인스턴스를 AWS 관리형 Microsoft AD 디렉터리 또는 Simple AD 디렉터리 또는 자체 관리형 Active Directory에 조인할 수 있습니다.

참고

Active Directory 도메인 조인은 2026년 8월 18일 또는 그 이후에 릴리스된 Windows Server 플랫폼 버전에서 사용할 수 있습니다. 이전 플랫폼 버전은 aws:elasticbeanstalk:windows:activedirectory 네임스페이스를 지원하지 않으며 검증 중에 옵션을 거부합니다. 환경을 업그레이드하려면 섹션을 참조하세요Elastic Beanstalk 환경의 플랫폼 버전 업데이트.

도메인 조인의 작동 방식

Active Directory 옵션이 있는 환경의 인스턴스가 시작되면 Elastic Beanstalk가 애플리케이션을 배포하기 전에 다음을 수행합니다.

  1. 디렉터리에 자체적으로 컴퓨터 객체를 생성합니다. 인스턴스는 환경 인스턴스 프로파일의 자격 증명을 사용하여 AWS Directory Service CreateComputer API 작업을 호출합니다. DirectoryOU 옵션을 설정하면 인스턴스가 해당 조직 단위(OU)에 컴퓨터 객체를 생성합니다. 그렇지 않으면 디렉터리의 기본 컨테이너에 객체가 생성됩니다.

  2. 자체 이름을 로 바꿉니다. EC2-XXXXXXXX여기서 XXXXXXXX는 인스턴스 ID의 마지막 8자입니다.

  3. 도메인에 조인한 다음 재부팅하여 조인을 완료합니다. 이는 Elastic Beanstalk 환경의 모든 Windows Server 인스턴스가 프로비저닝 중에 호스트 이름을 적용하기 위해 수행하는 것과 동일한 일회성 재부팅이므로 도메인 조인이 추가 재부팅을 추가하지 않습니다.

Active Directory 옵션이 없으면 Elastic Beanstalk는 프라이빗 IPv4 주소(예: IP-0A010203)에서 각 Windows 인스턴스의 호스트 이름을 추출합니다. IP 주소를 재사용할 수 있으므로 이러한 이름은 디렉터리의 오래된 컴퓨터 객체와 충돌할 수 있습니다. 이는 리전 간 또는 수명이 긴 환경에서 IP 범위를 재사용하는 재해 복구 토폴로지에서 발생할 수 있습니다. Active Directory 옵션을 설정하면 호스트 이름이 인스턴스 ID에서 대신 파생됩니다. 각 인스턴스 ID는 전역적으로 고유하기 때문에 오래된 컴퓨터 객체와 이름이 충돌할 가능성은 무시해도 됩니다. instance-ID-derived 호스트 이름은 Active Directory 옵션이 있는 환경에만 적용됩니다.

사전 조건

Active Directory 도메인 조인을 구성하기 전에 다음 사전 조건이 충족되는지 확인합니다.

  • AWS 디렉터리 서비스 디렉터리 - AWS 관리형 Microsoft AD, Simple AD 또는 AD Connector. 생성하려면 디렉터리 서비스 관리 안내서의 디렉터리 서비스 설정을 AWS 참조하세요. AWS

  • 네트워크 연결 및 DNS 확인 - 환경은 디렉터리에 연결할 수 있는 VPC에서 실행되어야 하며 환경의 인스턴스는 디렉터리의 DNS 이름을 확인해야 합니다. 조인 프로세스는 DNS SRV 레코드를 통해 도메인 컨트롤러를 검색합니다. 이는 일반적으로 디렉터리의 DNS 서버를 가리키는 DHCP 옵션 세트와 VPC를 연결하는 것을 의미합니다. 표준 AWS 디렉터리 서비스 구성입니다. 자세한 내용은 AWS 디렉터리 서비스 관리 안내서의 DHCP 옵션 세트 생성 또는 변경을 참조하세요. DNS 확인 누락은 도메인 조인 실패의 일반적인 원인입니다.

  • 인스턴스 프로파일 권한 - 환경의 인스턴스 프로파일(예: aws-elasticbeanstalk-ec2-role)에는 디렉터리ds:CreateComputer에서를 호출할 수 있는 권한이 있어야 합니다. 최소 권한 원칙을 따르려면 디렉터리에 범위가 지정된 정책을 추가합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ds:CreateComputer", "Resource": "arn:aws:ds:us-east-2:123456789012:directory/d-1234567890" } ] }

    또는 계정의 모든 디렉터리에 대한 ds:CreateComputer 권한이 포함된 AmazonSSMDirectoryServiceAccess 관리형 정책을 연결할 수 있습니다.

  • 지원되는 플랫폼 버전 - 환경은 2026년 8월 18일 또는 그 이후에 릴리스된 Windows Server 플랫폼 버전을 실행해야 합니다.

  • 기존 OU(를 설정한 경우DirectoryOU) - Elastic Beanstalk는 조직 단위를 생성하지 않습니다. DirectoryOU 옵션을 설정하면 디렉터리에 OU가 이미 있어야 합니다. 그렇지 않으면 조인이 실패합니다.

Active Directory 도메인 조인 구성

Active Directory 도메인 조인을 켜려면 aws:elasticbeanstalk:windows:activedirectory 네임스페이스에서 다음 구성 옵션을 설정합니다. 구성 파일, AWS CLI또는 구성 옵션 설정을 위한 다른 방법으로 설정할 수 있습니다. 각 옵션에 대한 자세한 내용은 섹션을 참조하세요aws:elasticbeanstalk:windows:activedirectory.

  • DirectoryId - 조인할 디렉터리의 ID입니다(예: d-1234567890). 이 옵션을 설정하면 기능이 켜집니다. 설정하지 않으면 환경의 동작이 변경되지 않습니다.

  • DirectoryName - 디렉터리의 정규화된 DNS 이름입니다(예: corp.example.com). DirectoryId가 설정된 경우 필요합니다.

  • (선택 사항) DirectoryOU-에서 컴퓨터 객체를 생성할 조직 단위의 고유 이름입니다(예: OU=WebServers,DC=corp,DC=example,DC=com). OU가 이미 있어야 합니다. 이 옵션을 설정하지 않으면 디렉터리의 기본 컨테이너에 컴퓨터 객체가 생성됩니다.

다음 AWS CLI 예시에서는 실행 중인 환경에서 Active Directory 도메인 조인을 구성합니다. 이 예제에서는 DirectoryOU 값에 쉼표가 포함되어 있으므로 --option-settings 파라미터에 JSON 구문을 사용합니다.이 쉼표는 간편 구문을 구분자로 해석합니다.

예 AWS CLI - Active Directory 도메인 조인 구성
aws elasticbeanstalk update-environment \ --environment-name my-env \ --option-settings '[ {"Namespace": "aws:elasticbeanstalk:windows:activedirectory", "OptionName": "DirectoryId", "Value": "d-1234567890"}, {"Namespace": "aws:elasticbeanstalk:windows:activedirectory", "OptionName": "DirectoryName", "Value": "corp.example.com"}, {"Namespace": "aws:elasticbeanstalk:windows:activedirectory", "OptionName": "DirectoryOU", "Value": "OU=WebServers,DC=corp,DC=example,DC=com"} ]'
중요

이 네임스페이스에서 옵션을 추가, 변경 또는 제거하면 Elastic Beanstalk는 환경에서 Amazon EC2 인스턴스를 다시 프로비저닝합니다. 그러면 롤링 업데이트가 트리거됩니다.

환경의 구성을 다른 디렉터리를 가리키도록 변경하면 대체 인스턴스가 새 디렉터리에 조인됩니다. 옵션을 제거하면 도메인에 가입하지 않고 대체 인스턴스가 시작되고 표준 IP-address-derived 호스트 이름을 사용합니다. 두 경우 모두 이전 인스턴스가 생성한 컴퓨터 객체는 디렉터리에 남아 있습니다. 자세한 내용은 디렉터리의 컴퓨터 객체 관리 단원을 참조하십시오.

도메인 조인 확인

인스턴스가 도메인에 가입했는지 확인하려면 다음 중 하나를 수행합니다.

  • (EC2-XXXXXXXX인스턴스의 호스트 이름)이라는 컴퓨터 객체가 디렉터리, 지정한 OU 또는 기본 컨테이너에 있는지 확인합니다.

  • 인스턴스의 배포 로그에서 행을 검토합니다Active Directory: joined to directory-name. 자세한 내용은 Elastic Beanstalk 환경의 배포 로그 보기 단원을 참조하십시오.

환경이 확장되면 Auto Scaling은 도메인에도 조인하는 인스턴스를 추가합니다. 이러한 인스턴스 중 하나에 대한 배포 로그를 검토하려면 Amazon S3에서 해당 로그를 검색합니다. 자세한 내용은 배포 로그가 저장되는 위치 단원을 참조하십시오.

실패한 도메인 조인

실패한 도메인 조인은 배포를 차단하지 않습니다. 어떤 이유로든 인스턴스가 도메인에 조인할 수 없는 경우 해당 인스턴스는 표준 IP-address-derived 호스트 이름(IP-XXXXXXXX)으로 폴백되고, 배포가 계속되며, 환경은 여전히 준비 상태에 도달하고 정상으로 보고될 수 있습니다.

오류를 표시하기 위해 Elastic Beanstalk는 인스턴스의 실제 도메인 멤버십을 구성된 디렉터리와 비교하고 일치하지 않을 때 ERROR 이벤트를 내보냅니다.

Active Directory domain join did not complete: instance is not joined to 'corp.example.com' (PartOfDomain=False, Domain=WORKGROUP). See the deployment log for the join output.

인스턴스는 조인 프로세스의 출력을에 씁니다C:\cfn\log\eb-ad-join.log. 조인이 실패하면 Elastic Beanstalk도이 로그를 인스턴스의 배포 로그에 복사하므로 인스턴스에 연결하지 않고도 원인을 검색할 수 있습니다. 자세한 내용은 Elastic Beanstalk 환경의 배포 로그 보기 단원을 참조하십시오.

문제 해결

인스턴스가 도메인에 조인하지 않는 경우 다음을 확인합니다.

  • 조인 로그 - 인스턴스의 배포 로그( 참조Elastic Beanstalk 환경의 배포 로그 보기) 또는 인스턴스의 C:\cfn\log\eb-ad-join.log에서 조인 출력을 읽습니다. 로그는 조인 실패를 일으킨 특정 오류를 기록합니다.

  • DNS 확인 - 환경의 VPC에 있는 인스턴스에서 디렉터리의 DNS 이름(DirectoryName값)이 확인되는지 확인합니다. 그렇지 않은 경우 디렉터리의 DNS 서버를 가리키는 DHCP 옵션 세트와 VPC를 연결합니다.

  • IAM 권한 - 환경의 인스턴스 프로파일이 디렉터리ds:CreateComputer에서 허용하는지 확인합니다. 그렇지 않으면 컴퓨터 객체를 생성하려고 할 때 조인이 실패합니다.

  • 조직 단위 -를 설정한 경우 디렉터리에 OU가 있고 고유 이름이 옵션 값과 정확히 일치하는지 DirectoryOU확인합니다. 존재하지 않는 OU에 조인이 실패합니다.

  • 인스턴스 구성 - 각 인스턴스C:\cfn\eb-ad.json의 파일은 인스턴스가 시작된 DirectoryId 및 DirectoryName를 기록합니다. 이를 사용하여 인스턴스가 수신한 디렉터리 구성을 확인합니다.

디렉터리의 컴퓨터 객체 관리

Elastic Beanstalk는 인스턴스 또는 환경이 종료될 때 디렉터리에서 인스턴스의 컴퓨터 객체를 삭제하지 않습니다. 조인된 모든 인스턴스는 EC2-XXXXXXXX 컴퓨터 객체를 뒤에 두고 조정 활동은 새 인스턴스마다 객체를 생성합니다. 조직의 일반적인 디렉터리 관리 도구를 사용하여 디렉터리에서 오래된 컴퓨터 객체를 주기적으로 제거하는 것은 사용자의 책임입니다.

각 새 인스턴스의 호스트 이름은 전역적으로 고유한 자체 인스턴스 ID에서 파생되므로 오래된 컴퓨터 객체와 이름이 충돌할 가능성은 무시해도 됩니다.