Terraformを学ぼう1!

こんにちは。KOUKIです。

とある企業で、Web APIの開発などしています。

最近だとクラウドネイティブ化の波が押し寄せてきて、AWSやGCPにも触り始めました。

その影響で、Terraformを学習する必要が出てきたので、本記事ではTerraformの基礎について備忘を残しておきたいと思います。

事前準備

Terraformとは

Terraformは、アプリ実行基盤などをコードベースで管理できるツールです。

例えば、AWS上でEC2・DynamoDB・S3を組み合わせたアプリ実行環境があったとします。これを、Terraformの文法規則に則ってコードで記述することで、コマンド一発でアプリ実行環境を構築することができたりします。

Terraformを使わない場合、手動で設定をポチポチしていくことになるので、結構めんどくさいです。

習得しておくとかなり快適なエンジニアライフが送れると思います

Terraformのインストール

ローカルにインストール

[ここ]からTerraformをインストールしてください。

インストール手順も公開されています。

Macの場合は、Homebrewで簡単にインストールできます。

Dockerイメージ

通常であればTerraformをインストールする必要があるのですが、Terraformのdockerイメージが提供されています。Dockerプロバイダーを使うときは利用が難しいのですが、それ以外の場合はTerraformをインストールする必要がないので、おすすめです。

Dockerプロバイダー

Terraformは、AWS・GCP・Azure関係なく使える便利ツールですが、Dockerプロバイダーを使うとローカルでも簡単にTerraformを動かせたりします。

main.tfに以下の設定を行いましょう。

これが最小単位の構成になります。

このコードを実行したところで何も起きませんが、エラーなく起動するか確認しましょう。

Terraformコマンド(Makefile)

MakefileにTerraformのコマンドを記述します。

Terraform初期化

gitを使うときにinitコマンドを実行するように、Terraformにもinitコマンドがあります。

Terraforを利用する際に、最初に実行するコマンドです。

今回は、Makefileにinitコマンドを記述しているので、以下のコマンドで実行します。

コンソール上に「Terraform has been successfully initialized!」が表示されたらOKです。

ローカルにも「.terraform」フォルダが生成されます。

アプリ実行環境の構築

Terraformでnoderedのイメージをローカルに落としてみましょう。

Resource

Terraformには、Resourceという重要なエレメントがあります。

ここには、Terraformで構築するリソースを指定します。

AWSのサービス(EC2など)GCPのサービス(BigQueryなど)は、全てリソース化されているので、使いたいサービスはここに定義することになります。

今回は、Docker Imageを使いたいので、resourceタグにdocker_imageを指定します。

Plan

アプリケーション環境を構築する前に、planコマンドを実行します。このコマンドで実行計画などが生成されます。

Apply

Plan実行後は、applyコマンドで起動します。

下記のコマンドで、docker imageの一覧を表示しましょう。

node-redのイメージがインストールされています。

Destroy

destroyコマンドで作成した環境を消すことができます。

docker imageを確認しましょう。

node-redのイメージが削除されています。

次回

Terraformは、Init -> Plan -> Apply -> Destroyが基本的な流れです。

次回は、コンテナの作成と情報の確認方法を学びましょう。

学習記録

コメントを残す