AWSのShared VPCについて
re:Invent 2018で発表されたAWSのShared VPCが少し便利そうだったので、現状わかる情報をまとめてみた。
Shared VPCとは?
- 他のアカウントに対してVPC内のSubnetを共有することができる
前提条件(2019/01/10現在)
- Subnetを共有するためには同じOrganizationsに所属する必要がある
- デフォルトVPC内のSubnetはシェアできない
- Organizationsのマスターアカウントで設定を行う必要がある
- 共有したSubnetを使って以下のリソースは利用できない
- Amazon Aurora Serverless
- AWS Cloud9
- AWS CloudHSM
- AWS Glue
- Amazon EMR
- Network Load Balancer
- サービス制限は個々のアカウント毎に適用される
共有する方法
- AWS Resource Access ManagerでResource Shareを作成する(ここで共有先のアカウントや共有したいSubnetを指定する)
- 設定は共有したいVPC・Subnetを持つAWSアカウントで行う
共有したVPCのリソースに対する権限
共有元のリソースを持つアカウントをOwner、共有先のアカウントをParticipantと呼ぶ
Owner
- VPCレベルのリソースの作成・削除・変更ができる(例.NAT GW、VPC Peeringなど)
- Security Groupは共有できない
- 共有されたSubnetでParticipantが作ったSecurity GroupやEC2、RDSなどのリソースは閲覧できるが削除できない
- 特別なVPCを作る必要はなく、既存のVPCのSubnetに関しても共有可能
Participant
- 共有されたSubnetを利用し、EC2、RDS、Lambdaなどを利用できる
- 他のParticipantのリソースは見えない
- VPCのRoute tableやNACLは閲覧可能ではあるが変更できない
Subnetの共有解除
共有を解除したSubnetを仮に非共有Subnetと呼ぶ
- Ownerは、いつでもParticipantとSubnetの共有を解除可能
- 既存のParticipantリソースは、非共有Subnetで引き続き実行される
- Participantは非共有Subnetへ新たにリソースを作成することができない
- Participantは非共有Subnet内のリソースを変更、参照、削除を行うことができる
- Participantが非共有Subnetにリソースを持っている限りOwnerはShared VPC・Subnetを削除できない