설명
DMS 복제 인스턴스는 소스와 대상 데이터베이스에 연결해 데이터를 이전합니다. publiclyAccessible은 이 인스턴스의 퍼블릭 IP 주소 사용 여부를 제어하며, 소스나 대상 데이터베이스를 직접 공개하는 설정은 아닙니다. 실제 연결은 서브넷 라우팅, 보안 그룹과 대상의 허용 규칙에 따라 달라집니다.
속성을 생략한 경우에는 사용하는 Pulumi 공급자와 배포 상태를 확인해야 합니다. 생략만으로 공개 주소 사용 여부를 단정하지 말고, 프라이빗 연결이 필요하면 publiclyAccessible: false를 명시하세요. 공개 주소 자체가 마이그레이션 설정이나 자격 증명을 공개하지는 않으며, DMS 관리 권한은 IAM으로 제어합니다.
잠재적 영향
- 불필요한 퍼블릭 IP 주소가 광범위한 보안 그룹 허용이나 라우팅과 결합되면 복제 인스턴스의 외부 노출 범위가 커질 수 있습니다.
- 연결 계획 없이 프라이빗 구성으로 전환하면 소스나 대상에 접속하지 못해 복제 작업이 중단될 수 있습니다.
해결 방법
publiclyAccessible: false를 설정하고 VPC 연결, 피어링, VPN 또는 Direct Connect 등으로 소스와 대상에 필요한 경로를 확보하세요. 보안 그룹과 대상의 허용 목록은 필요한 주소와 포트로 제한하고, 인터넷 대상에는 적절한 송신 경로를 마련하세요.- 기존 DMS 인스턴스의 공개 접근 설정 변경에는 교체가 필요합니다.
pulumi preview에서 교체와 종속 리소스 변경을 확인하고, 식별자 충돌과 중단 시간을 고려해 이전을 계획하세요. - 이전 전에 복제 작업과 엔드포인트 설정, 작업 이동 요구 사항을 확인하세요. 새 인스턴스에서 양쪽 엔드포인트 연결과 복제 재개, 데이터 정합성을 검증하고 복구 계획을 마련한 뒤 기존 리소스를 정리하세요.
예시
다음 부분 예시는 공개 접근 값의 차이를 보여 줍니다. 서브넷 그룹, 엔드포인트, IAM 권한과 네트워크 경로를 별도로 구성하고, sg-12345678은 실제 보안 그룹 ID로 바꾸세요. 인스턴스 클래스와 엔진 버전은 리전과 복제 작업의 요구 사항에 맞게 선택하세요.
변경 전
yaml
name: aws-dms
runtime: yaml
description: amazon dms replication instance
resources:
test:
type: aws:dms:ReplicationInstance
properties:
allocatedStorage: 20
multiAz: false
publiclyAccessible: true
replicationInstanceClass: dms.t3.micro
replicationInstanceId: test-dms-replication-instance-tf
vpcSecurityGroupIds:
- sg-12345678
변경 후
yaml
name: aws-dms
runtime: yaml
description: amazon dms replication instance
resources:
test:
type: aws:dms:ReplicationInstance
properties:
allocatedStorage: 20
multiAz: false
publiclyAccessible: false
replicationInstanceClass: dms.t3.micro
replicationInstanceId: test-dms-replication-instance-tf
vpcSecurityGroupIds:
- sg-12345678
설명:
- 변경 전: 복제 인스턴스의 공개 주소 사용을 활성화합니다. 실제 연결 범위는 네트워크 설정에도 달려 있습니다.
- 변경 후: 프라이빗 주소를 사용하도록 요청합니다. 기존 인스턴스에 적용할 때는 교체와 복제 작업의 이전을 계획해야 합니다.