Slide 1

Slide 1 text

Copyright © NIFTY Corporation All Rights Reserved.
 Re:ゼロ 
 から始めるTerraform生活 
 ~IaC入門編~
 仲上 浩豪
 システム統括部 インフラシステムグループ


Slide 2

Slide 2 text

Copyright © NIFTY Corporation All Rights Reserved.
 自己紹介
 氏名:仲上 浩豪(ナカガミ ヒロトシ)
 所属:インフラシステムグループ 情報システムチーム
 業務:カスタマーサポートセンター向けシステム運用
 社歴:2021年4月 新卒入社(4年目)
 趣味:ツーリング、筋トレ


Slide 3

Slide 3 text

Copyright © NIFTY Corporation All Rights Reserved.
 こんな経験はありませんか? 
 3
 消していいのかわからない…
 突然生まれる謎リソース 


Slide 4

Slide 4 text

Copyright © NIFTY Corporation All Rights Reserved.
 Terraformとは 
 4


Slide 5

Slide 5 text

Copyright © NIFTY Corporation All Rights Reserved.
 Terraformとは 
 5
 オープンソースのIaCツール
 
 ● 提供会社:HashiCorp
 ● 言語:HCL
 
 その他のIaCツール
 Cloudformation
 CDK
 Pulumi
 Ansible
 Puppet


Slide 6

Slide 6 text

Copyright © NIFTY Corporation All Rights Reserved.
 利用例
 6


Slide 7

Slide 7 text

Copyright © NIFTY Corporation All Rights Reserved.
 利用例
 7
 手作業
 VPC
 サブネット
 EC2
 セキュリティ
 グループ


Slide 8

Slide 8 text

Copyright © NIFTY Corporation All Rights Reserved.
 利用例
 8
 手作業
 VPC
 サブネット
 EC2
 セキュリティ
 グループ
 Terraformならすべて
 一発で作成できる!


Slide 9

Slide 9 text

Copyright © NIFTY Corporation All Rights Reserved.
 利用例
 9
 設定を作成
 provider "aws" { region = "ap-northeast-1" } resource "aws_vpc" "main" { cidr_block = "10.0.0.0/16" } resource "aws_subnet" "main" { vpc_id = aws_vpc.main.id cidr_block = "10.0.1.0/24" } 
 resource "aws_internet_gateway" "main" { vpc_id = aws_vpc.main.id } ~~~~~~~~~一部省略~~~~~~~~~~ 
 resource "aws_instance" "web" { ami = "ami-0c55b159cbfafe1f0" instance_type = "t2.micro" subnet_id = aws_subnet.main.id security_groups = [aws_security_group .main.name] tags = { Name = "WebServer" } }

Slide 10

Slide 10 text

Copyright © NIFTY Corporation All Rights Reserved.
 利用例
 10
 デプロイ
 $ terraform init $ terraform apply


Slide 11

Slide 11 text

Copyright © NIFTY Corporation All Rights Reserved.
 利用例
 11
 削除
 $ terraform destroy


Slide 12

Slide 12 text

Copyright © NIFTY Corporation All Rights Reserved.
 冪等性が担保される
 メリットとデメリット 
 12
 メリット デメリット 移行性が高い
 学習コストが高い
 イニシャルコストが高い
 引っ越しも 楽ちん


Slide 13

Slide 13 text

Copyright © NIFTY Corporation All Rights Reserved.
 どうやってデプロイしているの? 
 13
 AWS API 
 AWS API 
 HCL
 Terraform
 Cloudformation
 template.yml
 stack


Slide 14

Slide 14 text

Copyright © NIFTY Corporation All Rights Reserved.
 どうやってリソースを管理しているの? 
 14
 HCL
 .tfstate


Slide 15

Slide 15 text

Copyright © NIFTY Corporation All Rights Reserved.
 どうやってリソースを管理しているの? 
 15
 HCL
 .tfstate
 ①差分確認


Slide 16

Slide 16 text

Copyright © NIFTY Corporation All Rights Reserved.
 どうやってリソースを管理しているの? 
 16
 HCL
 .tfstate
 ①差分確認
 ②差分更新


Slide 17

Slide 17 text

Copyright © NIFTY Corporation All Rights Reserved.
 どうやってリソースを管理しているの? 
 17
 HCL
 .tfstate
 ①差分確認
 ②差分更新
 ③更新内容反映


Slide 18

Slide 18 text

Copyright © NIFTY Corporation All Rights Reserved.
 どうやってリソースを管理しているの? 
 18
 HCL
 .tfstate


Slide 19

Slide 19 text

Copyright © NIFTY Corporation All Rights Reserved.
 まとめ
 19
 Terrform の基本構文とアーキテクチャについて解説しました
 Terraform はクラウドインフラの管理コストを大幅に下げるので、積極的に使っていきましょう!
 Terraform を利用することで、簡単にクラウドリソースの作成・削除が行えるようになります


Slide 20

Slide 20 text

Copyright © NIFTY Corporation All Rights Reserved.