0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

awsのインフラを構築して、Terraform化しようとしたときに調べたことをまとめてみた。

Posted at

Terraformについて完全理解した。(ダニング=クルーガー効果)

Terraformについて

  • HashiCorp社がGo言語で開発したツールである。
  • インフラを構造化言語で記述することができる。

Terraformで、できること

  • インフラをコード化できる。
    • 何度もインフラを構築する時に、手作業で構築しなくて良い。
  • 構築後のインフラを管理も可能。
    • 変更やインフラの追加に対応することが可能。
  • 既存のインフラの設定をtfstateファイルという設定を保存するファイルにimportすることができる。

Terraformは何をしてくれるのか。

  • 記述した構造化言語の記述を元に、AWSのAPIを叩いてインフラを作成する。
  • APIでインスタンスを作成可能だが、Terraformを使うことで状態の管理もできるところが良い。

Terraformでコードを書くときには、何のドキュメントを参考にするのか。

  • まず参考にしたのは、下記の2点です。
    • Terraformのドキュメント
    • AWSのAPIドキュメント
    • 基本的にTerraformのドキュメントを参考にして、terraformを記述していくが、terraformで指定する値がわからないときに、AWSのAPIドキュメントを参照して、値やパラメータの設定を確認します。

私がTerraformでインスタンスを構築するときにやったデバッグ手順

Terraformでどこのパラメータを設定したら良いのか、何の設定が不足しているのか、わからないことが多々あった。いろいろなドキュメントを見たりして、やってみたが、うまくいかなかった。とりあえず、awsのコンソールを触って、インフラを構築することはできるため、Terraformを使ってコード化するときに現物とterraformのコードを見比べながら、デバッグの方法をやっていました。

  • まず、手作業でインスタンスを構築する。

    • terraformのimportコマンドで、手作業で構築したインスタンスをtfstateファイルにimportする。【1】
      terraform import aws_instance.<インスタンス名> <インスタンスID>
      terraformのimportコマンド
  • 次に、terraformで簡単なインスタンスを構築する。

    • terraformで作成した場合、tfstateファイルができる。【2】
  • 手動で作成してimportしたtfstaeファイル【1】に、terraformで作成したtfstateファイル【2】を比較して、不足していそうなパラメータなどを調べて、Terraformのファイルに追記する。

この方法を繰り返すことで、実際に構築してあるインフラをTerraformのコードとして実装していました。
awsのコンソールを触ってインフラを構築できる人が、Terraform化するときの助けになってくれると良いと思っております。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?