- 今ではAWSコンソールで数回クリックするだけでサーバーをデプロイし、コマンド1行でさまざまなインフラを構築する時代
- IaC
- コードでインフラを管理し、プロビジョニングすること
- 私たちが望むネットワーク、サーバー、ストレージなどをすべてコードとして保存し、管理
- これによりコードの共有、テスト、再利用が可能になり、インフラをより生産的に管理できる
- Terraform
- TerraformはIaCの中で最も有名なツール
- AWS、GCP、Azureのようなクラウドだけでなく、社内ソリューションまでまとめて管理できる
- 望む最終結果を定義する宣言型方式を使うため、結果を予測しやすい
- コードを再利用しても同じ結果を保証する
terraform plan を実行すると、AWS上でどのように作成されるか具体的な計画を立てる
terraform apply を通じて実際に適用する
- Terraformで作成されたリソース情報を
tfstate というJSONファイルで管理する
- Terraformの利用方法
- さまざまなキーワードでユーザー入力を受け取り、リソースを作成し、実行結果をCLI上に出力する機能を提供
- Provider
- リソースの種類を実装するプラグイン
- AWS、GCPのように利用するクラウドプラットフォームやサービスのproviderを見つけて構成に追加し、そのリソースを使ってインフラをプロビジョニングする
- Module
- 関連するリソース群を単一のリソースであるかのように管理する、再利用可能な小さなTerraform構成
- 他の人が作ったモジュールも自由に活用し、少ないコードで多くのリソースを効率的に管理する
- 構成を変えて同じモジュールを何度も呼び出す
- Resource
- 仮想ネットワーク、コンピューティングインスタンス、またはDNSレコードのような上位レベルの構成要素など、1つ以上のインフラオブジェクトを説明するキーワード
- Variable
- 入力変数は、モジュールのソースコードを変更せずにリソース属性を指定する
- プログラミング言語の関数パラメータに似ている
- 入力変数を通じて、モジュールをより柔軟に共有し再利用する
- Output
- 出力値は、コマンドラインで使うインフラ情報を作成し、利用する他のTerraform構成に情報を公開できる
- プログラミング言語の戻り値に似ている
まだコメントはありません。