7
5

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 5 years have passed since last update.

TerraformでEC2インスタンスを構築(インストール編)

Last updated at Posted at 2019-04-14

はじめに

AWSを使ってて、毎回コンソールから環境を構築するのは面倒です。
Terraformというツールを使えば、環境をドカッと作れて、ゴソッと消せるらしいので触ってみました。

まずは、お試し感覚でAWSのEC2を構築します。

このインストール編ではインストールから初期設定までを説明しています。
実際の構築については実践編で説明しています。

Terraformとは

  • Terraformとは、HashiCorp社製のAWSやGCPなどのクラウド上のリソース管理をする構成管理ツールです。

  • HashiCorp社のツールはTerraformの他にもVargrantなどがあり、これらはOSSとして公開されています。

Terraformの使い方

  • インフラの構成情報を.tfという拡張子のファイルに記述します。
  • terraformの各コマンドを実行することで、記述したインフラの構成を管理することができます。
  • .tfファイルは複数に分かれていても、同じディレクトリに存在すればまとめて適用することが可能。

Terraformの開発フロー

Terraformを用いたインフラの開発は以下のような流れで行います。

  1. .tfファイルにインフラのコードを書く
  2. terraform planコマンドで現状との差分を比較する
  3. terraform applyコマンドでインフラを構成を適用する
  4. terraform showコマンドで状態を確認する

Terraformのインストール

ダウンロード先

Terraform は、下記のリンクからダウンロードできる。

MacOS 版(AMD64)、Linux 版 (i386, AMD64)、Windows 版(i386) に対応

インストール

①インストール先のディレクトリを作成する。

$ mkdir terraform

$ cd terraform

②URLからダウンロード & 解凍

$ wget -O terraform_0.11.13_linux_amd64.zip https://releases.hashicorp.com/terraform/0.11.13/terraform_0.11.13_linux_amd64.zip

$ unzip terraform_0.11.13_linux_amd64.zip

③ディレクトリを見てみる

$ tree .
.
├── 0.1.0_linux_amd64.zip
├── terraform
└── terraform_0.11.13_linux_amd64.zip

④バージョン確認のコマンドを実行してみる

$ ./terraform --version
Terraform v0.11.13

インストールは以上で完了。必要であればパスを通してある/usr/bin/などにコピーしてもいいかも。

初期設定

事前準備 for AWS

Trraformを使ってAWS環境を構築する前に、以下2つをやっておく。

① IAMユーザの作成

TerraforでAWS環境を管理するにはアクセスキーIDとシークレットキーが必要なのでIAMユーザを作成しておく

② AWS CLIのインストール

事前にAWSCLIのインストールをインストールしておく。

pip install awscliでインストールできる。

Terraform初期設定

① IAMなどを登録

TerraformでAWSを管理する場合、アクセスキーの登録が必要になります。

Terraformをインストールしたディレクトリに.tfファイルを作成し、アクセスキーを記述します。
ファイル名は適当でOK。

リージョンも指定しておきます。

aws_setting.tf
    provider "aws" {
        access_key = "YOUR_ACCESS_KEY"
        secret_key = "YOUR_SECRET_KEY"
        region = "ap-northeast-1"
    }

② Terraform初期化

IAMのアクセスキーをterraform init コマンドを実行する。

Terraformの作業ディレクトリを初期化し、AWSを操作するためのプラグインをインストールします。

このコマンドを実行すると、terraform planやterraform applyコマンドが実行可能になります。

$ ./terraform  init 
Initializing provider plugins...
- Checking for available provider plugins on https://releases.hashicorp.com...
- Downloading plugin for provider "aws" (2.6.0)...

The following providers do not have any version constraints in configuration,
so the latest version was installed.

To prevent automatic upgrades to new major versions that may contain breaking
changes, it is recommended to add version = "..." constraints to the
corresponding provider blocks in configuration, with the constraint strings
suggested below.

* provider.aws: version = "~> 2.6"

Terraform has been successfully initialized!

You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.

If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.

③ terraform planで現在の状態を見てみる

terraform planコマンドを実行して、現在の状態を確認してみます。

変更なし、最新の状態であるというメッセージが表示される。

まだ、Terraformの設定ファイルにはAWSの構成情報は記述していないのでOK。

$ ./terraform plan
Refreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but will not be
persisted to local or remote state storage.


------------------------------------------------------------------------

No changes. Infrastructure is up-to-date.

This means that Terraform did not detect any differences between your
configuration and real physical resources that exist. As a result, no
actions need to be performed.

おわり

今回はインストール編なのでここまでです。

次回は実際にTerraformを使って、EC2インスタンスを作成してみようと思います。

7
5
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
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?