見出し画像

【109】【AWS】【Terraform】デフォルトのストレージサイズの変更

この記事を読むとTerraformでデフォルトのストレージを変更するやり方を学ぶことができます。
コードは簡単ですが意外にはまってしまったので共有します。

要件(やりたいこと)

Dockerの勉強でEC2インスタンスを構築します。デフォルトのストレージ8ギガは低いので20ギガにします。

間違ってしまった記述

//ストレージのサイズの変更
resource "aws_ebs_volume" "docker_ubuntu" {
 availability_zone = "ap-northeast-1a"
 size              = 20
 tags = {
   Name = "terraform_example_1004"
 }
}​

とすると、AWSでストレージが作成されますが、アタッチされないストレージ、つまり使われてないストレージのみが作成されてしまいます。

間違ってしまった記述2

//ストレージのサイズの変更
resource "aws_volume_attachment" "docker_ubuntu" {
 device_name = "/dev/sdh"
 volume_id   = aws_ebs_volume.docker_ubuntu.id
 instance_id = aws_instance.app_server.id
}
resource "aws_ebs_volume" "docker_ubuntu" {
 availability_zone = "ap-northeast-1a"
 size              = 20
 tags = {
   Name = "terraform_example_1004"
 }
}

アタッチすることで、インスタンスに接続されたストレージを追加しました。
しかし!!
コンソールで確認すると、ストレージが2つになっています。
デフォルトのストレージ8ギガと、今回ストレージの領域を変更したストレージ20ギガの2つです。
ストレージは1つだけで、サイズのみを20ギガに変更するにはどうすればいいのでしょうか?

デフォルトのストレージサイズの変更

  root_block_device {
   volume_size = 20
 }

をインスタンスの設定に記述するだけです。

resource "aws_instance" "app_server" {
 // このamiはUbuntuです
 ami           = "ami-0df99b3a8349462c6"
 instance_type = "t3.micro"
 associate_public_ip_address = true
 subnet_id = aws_subnet.public.id
 root_block_device {
   volume_size = 20
 }
 vpc_security_group_ids = [aws_security_group.docker_ubuntu.id]
 tags = {
   Name = "ExampleAppServerInstance"
 }
}

参考文献

さわって学ぶクラウドインフラ docker基礎からのコンテナ構築

実践Terraform AWSにおけるシステム設計とベストプラクティス (技術の泉シリーズ(NextPublishing)) オンデマンド (ペーパーバック) 

最後に
私がブログを書く目的は、素晴らしい本や、素晴らしい方々の技術記事を知って頂きたいからです。ぜひ、上記の参考文献を見て下さい。(noteなので広告とかは一切ありません。)

現在、株式会社grabssに行くために最後の悪あがきをしています!!

過去の活動

30日間でブログ記事を100件投稿しました。
トータルの投稿数
この記事は109件目の投稿です。

よろしければ、スキボタン及びサポートお願いします。勉強の励みになります。


この記事が気に入ったらサポートをしてみませんか?