AWS プログラミング

【入門】Terraformの基本コマンドまとめ【AWS CLI】

更新日:

みなさんAWSは使っていますか??

今回はAWSのInfrastructure as Code(IaC)であるTerraformについて、超基本のコマンドをまとめていきます。

 

インフラのコード化は本当に便利!!

 

ちなみにTerraformについて学習したい方はUdemyのLearn DevOps: Infrastructure Automation With Terraform がめちゃくちゃおすすめです。

 

 

 

 

初期化($ terraform init

Terraformの初期化をします。

 

コマンドを実行すると、直下に『.terraformディレクトリが作成されます』

 

 

ワークスペースを作成($ terraform workspace new "workspace_name"

Terraformにはワーススペースという単位で環境を分けることができます。

 

何も作成していない状態では、初期の『default』というワークスペースを使用することになります。

 

 

ワークスペースの一覧を表示($ terraform workspace list

現在のワークスペースの一覧を表示します。

 

何も作成していない状態では、初期の『default』というワークスペースのみが表示されます。

 

 

現在使用しているワークスペースの左側には「*(アスタリスク)」が付きます。

 

ワークスペースの切り替え($ terraform workspace select "workspace_name"

使用するワークスペースを切り替えます。

 

 

フォーマット($ terraform fmt

tfファイルを整形します。

本コマンドによって整形対象となったファイル(実際にフォーマットされたファイル)は、コマンド実行時にファイル名が標準出力されます。

 

かなりインデントなどが綺麗になるので、使った方が良いです!

 

 

構文チェック($ terraform validate

構文ミスがないか確認します。

 

問題がなければ「Success! The configuration is valid.」と出力されます。何かミスがあればエラーが出力されます。

 

 

テストデプロイ($ terraform plan

デプロイを想定してテストを行います。(実際にはデプロイされません)

実行結果が出力されます。

 

厳密なテストにはならず、本コマンドでエラーにならなかったとしても実際のデプロイ時にはエラーという可能性が0ではないので注意が必要です!

 

 

デプロイ($ terraform apply

インフラ環境にデプロイします。

plan同様に実行結果が出力されます。

 

本コマンドを実行することで実際のインフラ環境に反映されるのでご注意ください。

 

 

インポート($ terraform import "import_resource" "resource_id"

すでに作成されているインフラリソース(例えば、特定のS3バケットとか)をTerraformの管理化にするためにインポートします。

 

"import_resource"と"resource_id"の部分はインポートしたいインフラリソースによって指定方法が異なります。

公式ドキュメント:https://www.terraform.io/docs/configuration/resources.html

からインポートしたいリソースを検索して調べてみてください。

 

実際の挙動としてはTerraformの管理ファイル(.tfstate)に指定したインフラリソースの内容が追記されます。

 

 

よく読まれている記事

1

  現在5年目のエンジニアで26歳です。 今回は20代の現役エンジニアとして、自分も含め転職について考えている方に向けて20代エンジニア転職に完全特化したおすすめのサービスを3つ紹介していき ...

2

これからエンジニアになりたい、プログラミングを使えるようになりたいという方に向けて 山のようにあるプログラミングスクールの中から、特におすすめなスクールをタイプ別に逆引きで3つ紹介します。 &nbsp ...

3

みなさんはを使っていますでしょうか。   本記事を見ていただいているということは、   プログラミングの勉強でを使うことに興味がある、 もしくはこれから動画を購入したいけどどれを買 ...

-AWS, プログラミング
-, ,

Copyright© クラインの備忘壺 , 2019 All Rights Reserved.