テラフォームでAWS基盤設定を自動化出来ないかを考えてみた

  •  
 
MAXIMUM に投稿

タグ

1. はじめに

従来通り、AWS構築作業を手順書通りに手打ち…だと面倒なのとミスが出るリスクがある為、これを自動化したい。

IaCと呼ばれる手法があり、その中でも代表的なツールにテラフォームがある。このテラフォームはAWSのみではなく、他環境でも流用可能なため今回軽く触れてみた。

2. 初めて見る拡張子たち

よくあるコマンド手打ちを自動化する.shという拡張子があるが、これと合わせて.tfなどのテラフォーム用の拡張子がある。

とりあえず何者なのかを整理してみた。

  • .tf S3バケットの作成などを行う定義ファイル
  • .tfvars .tfファイル内に実値を入れ込む為の変数代入用ファイル
  • .hcl terraform initコマンド実行時に自動生成されるAWSなどのプロバイダー依存関係が記述されたファイル
  • .tftpl 使い回しを意識したい場合の雛形ファイル。必須ではない


同時に下記のような見慣れた仲間たちも併用可能。

  • .sh フォルダ移動などのコマンドを1つの実行ファイルとして纏めたもの。
  • .example 特に意味はないファイル。実行はしたくないが記述例としてコミットしたい場合に使用する。
  • .sql DBテーブル作成などSQL文を1つの実行ファイルとして纏めたもの。
  • .env 設定値が書かれたテキストファイル。.txtでも代用可能。

3. 処理の流れ

Spring Boot系の場合で例を出すと、大まかな処理の流れとしては、terraform → env → jar内部のyml設定値 という形で値が基盤側から業務APなどに渡されて行く。

※参考用に処理フロー画像添付しておきます。

4. テラフォームで自動化可能な範囲

環境構築とjar再配置などのデプロイ作業も部分的に自動化可能で、残った手作業についてもCI/CDパイプラインと組み合わせることで完全自動化が可能。

しかし、課題としてテラフォーム構文やAWS基盤設定値に独自のものが多い。

業務AP開発などを普段やっている人からすると追加で学習コストが掛かるので一旦、手順書化してその場限りの対応になることが多々ある。

5. 感想

業務APと併せて基盤側の自動化知識もあると気軽に1人でもアプリ作成出来るようになるので、暇な時にでも見ておこうかと思いました。

コメントを追加

プレーンテキスト

  • HTMLタグは利用できません。
  • 行と段落は自動的に折り返されます。
  • ウェブページのアドレスとメールアドレスは自動的にリンクに変換されます。
CAPTCHA
この質問はあなたが人間の訪問者であるかどうかをテストし、自動化されたスパム送信を防ぐためのものです。
画像
Terraform