AWS CDKでVPCエンドポイントをデプロイする方法

AWS CDKでVPCエンドポイントをデプロイする方法

項目 バージョン
CDK 2.27.0

AWS CDKでVPCエンドポイントをデプロイする方法です。

VPCエンドポイント作成

VPCエンドポイントで以下5つ作成します。

  • com.amazonaws.ap-northeast-1.ssm
  • com.amazonaws.ap-northeast-1.ssmmessages
  • com.amazonaws.ap-northeast-1.ec2messages
  • com.amazonaws.ap-northeast-1.s3 (ゲートウェイ)
  • com.amazonaws.ap-northeast-1.secretsmanager

tsファイルで以下のように3つ作成します。

import { Stack, StackProps, aws_secretsmanager } from 'aws-cdk-lib';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
import { Construct } from 'constructs';

export class Sample001Stack extends Stack {
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props);

    const vpc = new ec2.Vpc(this, 'vpc-sample-cdk', {
      cidr: '10.0.0.0/16',
      natGateways: 0,
      maxAzs: 2,
      subnetConfiguration: [
        {
          name: 'public-subnet',
          subnetType: ec2.SubnetType.PUBLIC,
          cidrMask: 24,
        },
        {
          name: 'isolated-subnet',
          subnetType: ec2.SubnetType.PRIVATE_ISOLATED,
          cidrMask: 24,
        }
      ]
    });

    // VPC Endpoint
    const endpoints : Array<[ec2.InterfaceVpcEndpointAwsService, string]> =
      [[ec2.InterfaceVpcEndpointAwsService.SSM, 'ssm'],
       [ec2.InterfaceVpcEndpointAwsService.EC2_MESSAGES, 'ec2messages'],
       [ec2.InterfaceVpcEndpointAwsService.SSM_MESSAGES, 'ssmmessages']]
    for(const data of endpoints) {
      new ec2.InterfaceVpcEndpoint(this, data[1], {
        vpc,
        service: data[0],
        subnets: {
          subnetType: ec2.SubnetType.PUBLIC // 明示的に指定
        },
        privateDnsEnabled: true // プライベートDNS有効化
      });
    }
    const subnetSelection: ec2.SubnetSelection = {
      subnetType: ec2.SubnetType.PRIVATE_ISOLATED, onePerAz: true
    };
    new ec2.GatewayVpcEndpoint(this, 's3gateway', {
      vpc,
      service: ec2.GatewayVpcEndpointAwsService.S3,
      subnets: [subnetSelection]
    });
    new ec2.InterfaceVpcEndpoint(this, 'secretmanager', {
      vpc: vpc,
      service: ec2.InterfaceVpcEndpointAwsService.SECRETS_MANAGER,
      subnets: {
        subnetType: ec2.SubnetType.PRIVATE_ISOLATED
      }
    });

  }
}

これでデプロイします。

cdk deploy

デプロイに255.83sかかりました、VPCエンドポイントが作成されます。

インタフェース型のエンドポイントの各セキュリティグループのインバウンドは443が解放されています。

AWS CDKでVPCエンドポイントをデプロイする方法

参考サイト

AWS CDKで踏み台サーバ(EC2)をデプロイする方法

コメント

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました