説明
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
説明:
- 変更前: レプリケーションインスタンスの公開アドレスが有効です。実際の接続範囲はネットワーク設定にも左右されます。
- 変更後: プライベートアドレスを使う設定です。既存のインスタンスに適用するときは、インスタンスの置き換えとレプリケーションタスクの移行を計画してください。