AWS CDKでEC2をデプロイする方法

AWS CDKでEC2をデプロイする方法

項目 バージョン
CDK 2.27.0

AWS CDKでEC2をデプロイする方法です。AWS CDKでデプロイしたサブネットではなく、既存のパブリックサブネットにデプロイしています。

※既存のモノを使用する際は、bin\配下のtsファイルでenvの定義が必要です

参考:https://akamist.com/blog/archives/5332

import { Stack, StackProps } 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 = ec2.Vpc.fromLookup(this, 'Vpc', {
      vpcId: 'vpc-xxxxxxxxxxxxxxxxxxxx' // 既存VPC-IDを指定して参照する
    })

    // create a security group for the EC2 instance
    const ec2InstanceSG = new ec2.SecurityGroup(this, 'ec2-instance-sg', {
      vpc,
    });

    ec2InstanceSG.addIngressRule(
      ec2.Peer.anyIpv4(),
      ec2.Port.tcp(22),   // port22解放
    );

    // create the EC2 instance
    const ec2Instance = new ec2.Instance(this, 'ec2-instance', {
      vpc,
      vpcSubnets: {
        subnetType: ec2.SubnetType.PUBLIC,
      },
      securityGroup: ec2InstanceSG,
      instanceType: ec2.InstanceType.of(
        ec2.InstanceClass.BURSTABLE2,
        ec2.InstanceSize.MICRO,
      ),
      machineImage: new ec2.AmazonLinuxImage({
        generation: ec2.AmazonLinuxGeneration.AMAZON_LINUX_2,
      }),
      keyName: 'hoge', // キーは既に作成済みのキーを指定
    });

  }
}

これでデプロイします。

cdk deploy

EC2が作成されます。

AWS CDKでEC2をデプロイする方法

セキュリティグループが作成されます。

AWS CDKでEC2をデプロイする方法

参考サイト

aws-cdk-lib.aws_ec2 module · AWS CDK
Language | Package

コメント

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