MENU
category

AWS CDKのCfnVPC型(L1)からIVPC型(L2)に変換する方法

VPCはL2で作成すると様々なリソースが自動作成されるため、あえてL1のCfnVPCで作成を試みたところ、セキュリティグループなどをL2で作成しようとすると、IVPC型(L2のVPC型)が必要だったため、作成できず。結局セキュリティグループなどもL1で作成するしかないのか?と思い調査しました。
結果以下の方法がありましたので、公開しておきます。Issueも出ており、そのうち正式な型変換が提供される可能性があるので、一時的な凌ぎとして活用すると良さそうです。

VPCを以下のようにL1で作成したとします。そうすると作成されたvpcはCfnVPC型となります。

    const vpc = new ec2.CfnVPC(this, 'Vpc', {
      cidrBlock: '10.0.0.0/16',
   });

上記で作成した vpcを以下のようにインポートすることで、ivpcはIVPC型となるため事実上の型変換として利用できます。なお、これは上記vpcを作成するスタックと同一スタックで実行できます。

    const ivpc = ec2.Vpc.fromVpcAttributes(this, 'ImportedVpc', {
      vpcId: vpc.ref,
      availabilityZones: ['ap-northeast-1a']
    })


以降は、例えばセキュリティグループの場合以下のように、ivpcを参照して作成することができます。

     const securityGroup = new ec2.SecurityGroup(this, 'MySecurityGroup', {
      vpc: ivpc,
      allowAllOutbound: true,
      description: 'Allow SSH and HTTP',
    });
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次