
【アップデート】TerraformでEC2の汎用SSD「gp3」が利用可能になりました!
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは!コンサル部のinomaso(@inomasosan)です。
Terraformで、AWS re:Invent 2020にて発表された新しい汎用SSD「gp3」が利用可能になりました! 2021/1/22のAWSプロバイダーv3.25.0のアップデートで対応したようです。
この記事で学べること
gp3の概要と、Terraformでのコードの書き方。
gp3 is 何?
AWS re:Invent 2020で発表された新しいEBSボリュームタイプです。
gp2と比較した場合、主なメリットは以下となります。
- 1GBあたりのストレージ料金は20%程度安い。
 - 3,000IOPSまで無料かつ、ベースラインとして保証される。
 - スループットは125MB/秒まで無料かつ、ベースラインとして保証される。
 
gp2はボリュームサイズに応じてIOPSが上昇します。
例えば、gp2で8GBのEBSを作成した場合、ベースラインパフォーマンスは100IOPSとなりますので、gp3で8GBのストレージを作成した方がコスト・性能共に優れております。
gp3の詳細は、弊社のre:Inventに関するレポートを読んで頂けますと幸いです。
やってみる
1. 環境
今回実行した環境は以下の通りです。
- macOS Catalina 10.15.7
 - Terraform 0.14.6
 - AWSプロバイダー 3.25.0
 
2. コード
リージョンやバージョン設定
リソース作成先のリージョンや、各種バージョンを指定します。 AWSプロバイダーのバージョンは3.25.0以上に設定しました。
provider "aws" {
  # 東京リージョン
  region = "ap-northeast-1"
}
terraform {
  # Terraformバージョン指定
  required_version = "0.14.6"
  # AWSプロバイダーバージョン指定
  required_providers {
    aws = {
      source = "hashicorp/aws"
      version = ">= 3.25.0"
    }
  }
}
EC2インスタンス
EC2のEBSボリュームタイプをgp3にします。
resource "aws_instance" "ec2" {
    # Amazon Linux2
    ami = "ami-0992fc94ca0f1415a"
    # インスタンスタイプ
    instance_type = "t3.micro"
    # キーペア
    key_name = "aws-ssh-key"
    # サブネット
    subnet_id = aws_subnet.sub_pub_1a.id
    # セキュリティグループ
    vpc_security_group_ids = [aws_security_group.ec2.id]
    # EBS最適化を有効
    ebs_optimized = "true"
    # EBSのルートボリューム設定
    root_block_device {
        # ボリュームサイズ(GiB)
        volume_size = 8
        # ボリュームタイプ
        volume_type = "gp3"
        # GP3のIOPS
        iops = 3000
        # GP3のスループット
        throughput = 125
        # EC2終了時に削除
        delete_on_termination = true
        # EBSのNameタグ
        tags = {
            Name = "gp3-dev-ec2"
        }
    }
    # EC2のNameタグ
    tags = {
        Name = "gp3-dev-ec2"
    }
}
確認してみる
AWSマネージメントコンソールで、gp3が想定通りに作成されたことを確認できました。

まとめ
Terraformでgp3を利用可能になったので、EC2構築が捗りそうです。
この記事が、どなたかのお役に立てば幸いです。それでは!






