この記事は公開されてから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構築が捗りそうです。
この記事が、どなたかのお役に立てば幸いです。それでは!