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

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

項目 バージョン
CDK 2.27.0

AWS CDKで踏み台サーバ(EC2)をデプロイする方法です。プライベートサブネットにデプロイしています。

踏み台サーバの場合はEC2のクラスでもOKですが、踏み台サーバ専用のBastionHostLinuxクラスが用意されているようです。

既存のVPCにプライベートサブネットがあればデフォルトではプライベートサブネットにEC2が作成されるようです。

Type: SubnetSelection (optional, default: private subnets of the supplied VPC)

Select the subnets to run the bastion host in.

Set this to PUBLIC if you need to connect to this instance via the internet and cannot use SSM. You have to allow port 22 manually by using the connections field

また、machineImageが未指定の場合は、SSMエージェントがプリインストールされているAMIが選択されるようです。

Type: IMachineImage (optional, default: An Amazon Linux 2 image which is kept up-to-date automatically (the instance may be replaced on every deployment) and already has SSM Agent installed.)

The machine image to use, assumed to have SSM Agent preinstalled.

という事は、あとはVPCエンドポイントとセキュリティグループの設定だけ別途作成が必要になるっぽいです。

VPCエンドポイント作成

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

  • com.amazonaws.ap-northeast-1.ssm
  • com.amazonaws.ap-northeast-1.ssmmessages
  • com.amazonaws.ap-northeast-1.ec2messages

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

以下のように3つ作成されます。

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

※既存VPC上にデプロイする場合はsubnetsオプションの指定が必要です

EC2作成(踏み台サーバ)

EC2(踏み台サーバ)をBastionHostLinuxクラスから作成します。

アウトバウンドがvpcと同じCIDRで443解放されています。

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

これでデプロイします。

デプロイに199.12sかかりました、EC2が作成されます。

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

SSMで接続確認OKです。

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

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

yumが使えるように「com.amazonaws.ap-northeast-1.s3」のVPCエンドポイント(Gatewayタイプ)を作成する、またアウトバウンド80と443を開放する必要があります。

yumコマンドが実行できることが確認できます。

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

参考サイト

https://docs.aws.amazon.com/cdk/api/v1/docs/@aws-cdk_aws-ec2.BastionHostLinux.html

https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint.html

https://aws.amazon.com/jp/blogs/infrastructure-and-automation/deploy-bastion-hosts-into-private-subnets-with-aws-cdk/

https://faun.pub/create-a-bastion-with-aws-cdk-d5ebfb91aef9

https://dev.classmethod.jp/articles/session-manageer-confirmation-item/

https://dev.classmethod.jp/articles/tsnote-private-ec2-ssm-vpc-endpoint/

https://github.com/aws/aws-cdk/issues/5458

https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-al1-al2-update-yum-without-internet/

コメントをどうぞ

メールアドレスが公開されることはありません。

CAPTCHA