FFRIエンジニアブログ

株式会社FFRIセキュリティのエンジニアが執筆する技術者向けブログです

CDK で Windows EC2 インスタンスを作成する際に AMI を指定する方法

はじめに

こんにちは、基礎技術研究室でリサーチエンジニアをやっている茂木です。

これまでは Terraform を使うことが多かったのですが、最近は Cloud Development Kit (以下 CDK) をよく触っています。

CDK は特に Lambda の取り回しがよく気に入っています。例えば hotswap deployment に対応しましたし、experimental モジュールですが Amazon Lambda Python LibraryPoetry に対応しています。研究用途でそこまで安定性が求められないこともあり、こういった機能も積極的に使っています。

さて、そんな CDK ですが、今回は少し見つけにくかった情報を書きます。小ネタです。以下、CDK のバージョンは 2.17.0 で確認しました。

Windows EC2 インスタンスを作成する際に AMI を指定する方法

CDK で Windows の EC2 インスタンスを作成する際は、WindowsImage でバージョンを指定することで、そのバージョンの最新の AMI を使用できます。

しかし、特定の AMI を指定したいときもあります。この方法は2つあります。

1 つは GenericWindowsImage クラスを使う方法です。

const machineImage = new GenericWindowsImage({ region: ami });

もう 1 つは MachineImage クラスの static メソッドである genericWindows を使う方法です。

const machineImage = MachineImage.genericWindows({ region: ami });

これは単に GenericWindowsImage の factory 関数なので、同じ結果になります。

こうして AMI を指定して、

const instance = new ec2.Instance(this, "EC2Instance", {
  vpc,
  instanceType,
  machineImage,
});

として EC2 インスタンスを作成できます。

おわりに

自分が困ったことは他の誰かも困っているはずの精神で、今回からはこうした小ネタも記事として出していきます。 皆様のお役にたてれば幸いです。

やはり使い慣れた TypeScript で書け、ESLint や Prettier にかけられる CDK は良いですね。今後とも使っていきたいです。

FFRIセキュリティではサイバーセキュリティに関する研究開発を希望するエンジニアを募集しています。採用に関してはこちらをご覧ください。