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を削除できない

参考記事