【アップデート】TerraformでEC2の汎用SSD「gp3」が利用可能になりました!
こんにちは!コンサル部の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構築が捗りそうです。
この記事が、どなたかのお役に立てば幸いです。それでは!