はじめに

Amazon EventBridge Schedulerで意図したEC2を落とすことができるかが心配になりました。

本番環境で動いているEC2を間違って落としてしまうのは嫌なので。

ということで、落とし上げをするためだけのEC2を構築することにしました。とはいうものの、試験するだけなので、安いEC2を使いたいです。探したら、t4g.nanoがありました。

使い回しのterraformを使うと、「アーキテクチャが違うよ!」とエラーメッセージが出たので、動いたterraformを書きます。

terraform

Amazon Linux 2023を使用します。dataで最新のarmのAMIを取得します。

valuesの箇所でarm64を指定するのがポイントです。

# Amazon Linux 2023 の最新版AMIを取得
data "aws_ami" "amzlinux2" {
  most_recent = true
  owners      = ["amazon"]
  filter {
    name   = "name"
    values = ["al2023-ami-2023*-arm64"]
  }
}

続いて、以下のように書きます。amiは上で取得したAMIのIDをセットします。

instance_typeに"t4g.nano"というt4シリーズのarmアーキテクチャのインスタンスを指定している箇所です。

# EC2作成(スケジュールでの起動・停止対象)
resource "aws_instance" "schedule-ec2" {
  ami                         = data.aws_ami.amzlinux2.id
  instance_type               = "t4g.nano"
  availability_zone           = "ap-northeast-1a"
  subnet_id                   = aws_subnet.private-subnet-1a.id
  associate_public_ip_address = false
  tags = {
    Name = "yamada-poc-ec2"
    Stop = "Night"
    Stop = "Weekend"
  }
}