9
9

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

Terraform Cloudの始め方

Posted at
1 / 24

Terraform Cloudの始め方を解説します。
5人まで無料で使用できるので、個人利用の場合は、重宝できそうだと思い試してみます。
image.png


#アカウント作成
こちらからアカウントを作成してください。
image.png


#####主な入力情報

  • ユーザ名
  • メールアドレス
  • パスワード
  • 利用規約の同意
  • プライバシーポリシーの同意

##メールアドレス認証
こんな感じのメールが送られてくるので、URLをクリックし認証を行います。

Hello,

Please confirm this email address for your Terraform Cloud account by clicking on the link below:

https://app.terraform.io/confirmation?confirmation_token=XXXXXXXXXXXXXXXXXXX

Best,
HashiCorp

##認証完了画面
認証完了です。
image.png
※ワークフローの選択がありますが、「サンプル構成で試すか」「自分で一から作るか」の選択になるので、今回は下の「自分で一から作る」かたちで始めます。


##組織の作成
今回は、一人でしか使用しないので、ここは好きな名前でいいと思います。
※会社の場合は、会社名でいいかなと。
image.png


#Workspaceを作成
今回は、バージョン管理ワークフローで作成していきます。
image.png


##バージョン管理のプロバイダー
今回は、Githubを使用します。
image.png
※Github側の認証に入るので、認証を進めてください。


#コードをGitHubにPush
ここからGithubに移ります。
Github上にリポジトリがないと、ワークスペースの作成ができない為、コードをPushしていきます。

・AWS ProviderとVPCを作成するコードをGitHubにPushします。

main.tf
variable "aws_access_key" {}
variable "aws_secret_key" {}

provider "aws" {
  access_key = var.aws_access_key
  secret_key = var.aws_secret_key
  region = "ap-northeast-1"
}

resource "aws_vpc" "test-vpc" {
  cidr_block = "10.0.0.0/16"
  tags = {
    Name = "test-vpc"
  }
}

##リポジトリを選択し、ワークスペースを作成
image.png


##ワークスペース作成完了
image.png


##環境変数を追加
IAMユーザのアクセスキーとシークレットキーをTerraform Variablesに設定する。

  • aws_access_key
  • aws_secret_key

image.png


#試しに実行してみる
Queue plan で実行してみる。
image.png


##実行結果(Plan)
VPC作成しますよと出ていますね。
image.png


##実行結果(Apply)
apply finished しているので、作成できていそうですね。
※デフォルトの設定だとApplyは手動でボタンをクリックすることによってapplyが走ります。
image.png


##AWS側で確認
VPCが作成されていました!
image.png


#MainにMerge自動plan & applyをやってみる
Applyを自動実行する設定に変更します。
SettingsからGeneralで、Apply MethodをAuto applyに変更し、Save settingsで保存です。
image.png


#Pull Requestを出してみる
サブネットを作成してみます。
まずはテストとしてMulti-AZのSubnetを追加するコードをMainから切った別ブランチ(develop)にPushします。

main.tf
// 追加コード
resource "aws_subnet" "test-subnet-a" {
  vpc_id     = aws_vpc.test-vpc.id
  cidr_block = "10.0.0.0/28"
  availability_zone = "ap-northeast-1a"

  tags = {
    Name = "test-subnet-a"
  }
}

resource "aws_subnet" "test-subnet-c" {
  vpc_id     = aws_vpc.test-vpc.id
  cidr_block = "10.0.0.16/28"
  availability_zone = "ap-northeast-1c"

  tags = {
    Name = "test-subnet-c"
  }
}

##実行結果(plan)
Pull Requestを作成すると自動でテスト(terraform plan)が走り、Terraform Cloud上ではこんな感じでテスト(terraform plan)が走っています。
image.png


##実行結果(apply)
MainにMergeされると、自動的にapplyされます。
image.png


#お片付け
環境のdestroyを実行したい場合、SettingsからDestruction and Deletionで、削除することが可能です。
image.png


#まとめ
terraformのバージョン管理など自作で作ると大変な作業でしたが、クラウドサービスをうまく使えば、個人利用の範囲であれば活用できそうです。Terraform Cloudが自動実行されるタイミングはMainの変更とPull Request作成時のみとなっており、もちろんPull Rqeustのときはplanのみの実行で、MainにMergeされない限りapplyは実行されないため、安全なCI/CDが組めそうです。


#終わり

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?