スキップしてメイン コンテンツに移動

投稿

ラベル(Terraform)が付いた投稿を表示しています

Terraformのど基本 - その4

 はじめに 前回の「 Terraformのど基本 - その3 」ではTerraformでAWSのリソースを扱っていく為の準備として、TerraformのインストールとIAMそしてAWS CLIの設定までを行った。 今回はいよいよになるが、Terraformを使って実際にAWSのリソースを操作する簡単なデモを行ってTerraformのど基本シリーズを締め括りたいと思う。 本来であればEC2やVPCやS3と言ったリソースやAWSといったサービス毎にファイルを分割して管理・構築する方が実践ではオススメではあるがここでは内容理解に重点を置きたいので main.tf という一つのファイルにまとめて進めていく。 今回構築する内容としては非常にシンプルなものではあるが、AWS Profileの情報を利用してEC2インスタンスを立ち上げるというのを行っていきたいと思う。 前準備 まずは再度の確認にはなるが前回行ったIAMユーザアクセス権があることを確認したい。 aws sts get-caller-identity のレスポンスが返却されればOKだが、もしここでレスポンスが返却されていない様であれば、前回の「 Terraformのど基本 - その3 」のAWS CLIの設定の項目で復習して欲しい。 名前は何でも良いのだが、任意のディレクトリを作成しその中にここでは main.tf という名前のファイル名を作成しておこう。 例: test/main.tf main.tf では早速main.tfを記述していく。細かい箇所に関しては後ほど解説する予定なので一先ず下記の通り記述をお願いしたい。 それではブロック毎に内容の記述内容の解説を行っていく。 variable ここで理解して頂きたいことは default と type である。これはその名の通り変数のデフォルト値であったり型宣言の部分となる。 variable 内の様々な記法に関してはこちらの ドキュメント を参照 terraform 次に来るブロックが terraform と書かれたブロックである。ここには必要とするモジュール名であったりバージョン情報などを記述する。 terraform 内の様々な記法に関してはこちらの ドキュメント を参照 provider そして次に来るブロックが provider のブロックとなる。...

Terraformのど基本 - その3

 はじめに 前回の「 Terraformのど基本 - その2 」ではTerraformを使用していくにあたってのよく使う基本のコマンドそしてそのコマンドを利用した大きな流れを確認した。 今回は早速Terraformを使ってサンプルでデモと行きたい所だが、まずはその為の下準備をここで行っておきたい。 ちなみにここではAWSを使用してサンプルを作成していく予定である。 準備 まずは何はともあれTerraformのインストールから行っていく。 続いてはAWS CLIを使える状態にしていく。ここで簡単にAWS CLIについて説明しておきたい。 AWS CLIとは? 一言で言い表すとコマンドでAWSの各サービスを扱う為のツール群である。AWS CLIを用いることによって、GUI上から操作していたものをコマンドに置き換えることが可能となるので、IaC化, DevOpsの流れとも相まってよく使われる様になっている。 AWS CLIのインストール それではAWS CLIをインストールしていく。AWS CLIにはバージョンが1と2とが存在するが、基本的にはバージョン2をインストールすればOK。 AWS公式のダウンロードページ より最新のパッケージのダウンロードを行い、インストーラーを起動しAWS CLIをダウンロードしていこう。リンクはmacOSのものだが、同ページには他のOSに関しても記載があるので都度参照されればと思う。 インストールが完了したら次はインストールの検証を行い、AWS CLIが意図通りインストールされているか、パスとバージョンを確認していく。下記の様なパスとバージョンが表示されればインストールは完了となる。 IAMユーザーの作成 既にAWSが使用出来ている時点でrootユーザーのアカウントは作成されているかと思うが、実運用ではrootユーザーを使用するのはベストプラクティスではない為、新規でIAMユーザーを作成してAWSのリソースを扱っていく。 それでは早速新規でIAMユーザーを作成していこう。特に迷う点は無いと思われるが、ユーザー名を入力した後はアクセスの種類を選択する際に プログラムによるアクセス と AWSマネジメントコンソ...

Terraformのど基本 - その2

はじめに 前回の「 Terraformのど基本 - その1 」ではTerraformのど基本としてその概要に迫ってみた。Terraformあると良さそうだなぁ。というのを少しでも感じて頂ければ取り敢えずはOK。 今回は「 Terraformのど基本 - その2 」になるのだが、では実際にどういう流れでコーディングしていけば良いかについて、まずはその流れから見てきたいと思う。 まずは基本的な流れから Terraformを使用していくにあたって、まずはよく使う基本のコマンドから紹介。これらのコマンドは特に重要なので使い方をここでしっかり理解しておいて欲しい。 terraform init terraform plan terraform apply では早速それぞれのコマンドについて解説していく。 terraform init 現在のディレクトリ内のTerraform関連ファイル( main.tf など)を元に必要なモジュールのダウンロードを行い .terraform というディレクトリ内に保存を行う。 ちなみにこちらのコマンドを誤って複数回実行しても特に問題はない。 詳しくはドキュメントの Command: init を参照。 terraform plan このコマンドは実際にterraformにて設定を適用した場合に( terraform apply した場合に)変更点はどこにあるのかの差分の確認を行う。 このコマンドをapply前に叩くことで、適用前に事前に変更差分を確認出来るので、同じ開発チーム内でも変更差分を共有できる等のメリットがある。 詳しくはドキュメントの Command: plan を参照。 terraform apply このコマンドはもうお分かりの通り terraform plan した結果を実際に反映させる。 実はこのコマンドを実際に実行させると分かるのだが、実際に実行する前にきちんと変更差分を教えてくれるようになっている。 プロンプトにより実際に適用してOKか否かでOKして初めて適用される仕様となっている。 ちなみに -auto-approve を付与することでプロンプトによる承認無く適用させることも可能だが、特段の理由が無い限りはこのオプションは付けない方が無難であろう。 詳しくはドキュ...

Terraformのど基本 - その1

はじめに Terraformに関して、現在ではエンジニア界隈でどの位浸透してきているのだろうか。自身はインフラエンジニアからのスタートでは無かったこともあり、DevOps周りに興味を持ち始めてから知るようになってきたという感じだ。 ここではTerraformがどの様なものなのかという概要と使用にあたってのど基本の使い方の流れを解説していければと思う。 Terraformとは何か? 一言で言うのであれば、Terraformはコードでインフラを構築する為のツール。もう少し詳しく言うとコードによりAWSなどのクラウドサービスをコントロールする為のAPI的な窓口を提供しているものと個人的には認識している。 なぜTerraformが必要なのか? ではなぜTerraformが必要になってくるのか、もしくはなぜあると便利なのかと言うと簡単には次の2点に集約されると思う。 まず1点目はコードでインフラを管理する様になるので 構成管理をGit管理することが可能となること 。2点目はTerraformを使用することで 環境の構築または破棄が容易となること であると考えている。 つまりGit管理が可能となるので、インフラの変更の跡をコミットで残すことが出来、アプリケーションのコードの様に開発者間で構築内容を共有出来るということである。従来であれば例えばAWSのコンソール画面からポチポチとセットアップして構築していた為跡を追うのが面倒であったし、跡をドキュメントなどで残していたとしても今度はドキュメントのメンテナンス作業にコストが発生してしまっていた。 それからTerraformを使用することで環境の構築と特に破棄の面で便利さが実感出来る。恐らく1度そこそこのインフラをAWS等で構築したことがある方であれば分かると思うのだが、コンソール画面からポチポチと消す作業などをする際にその消す順番を誤ると消したいものもなかなか消せないという場面に遭遇したことはないだろうか。 これは一つ一つのサービスの依存関係によることが多いのだが、その辺りを消す際に確認せずとも比較的安全にそしてキレイに破棄を行ってくれる。これは地味にTerraformの有り難い機能の一つであると考えている。 なぜTerraformなのか? ここででは他にも同様のサービスは無いのかと思っている方もおられるかもしれないので、一応軽く触...