---
title: terraformのすゝめ
tags: 
author: [小林拓磨](https://docswell.com/user/norit4ma)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/GEWDWQ5ZJ2.jpg?width=480
description: terraformのすゝめ by 小林拓磨
published: October 22, 24
canonical: https://docswell.com/s/norit4ma/5MXL79-lets-begin-terraform
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/GEWDWQ5ZJ2.jpg)

terraformのすゝめ
Takuma Kobayashi, Finatext
© 2024 Finatext Holdings Ltd.


# Page. 2

![Page Image](https://bcdn.docswell.com/page/47ZG5WNLE3.jpg)

自己紹介
● 小林拓磨（X: @takuma5884rbb）
● 2023 (株)Finatext 入社
● ソフトウェア・AWSエンジニア
○ Go・AWSを用いた証券取引サービスの開発・運用
○ Terraformを用いたIaC
○ 新卒エンジニア採用
● 2024 Japan AWS Jr. Champions
● 趣味
○ 料理
○ ランニング
© 2024 Finatext Holdings Ltd.
1


# Page. 3

![Page Image](https://bcdn.docswell.com/page/YJ6Y9G8M7V.jpg)

Speaker’s background
● DevOpsエンジニア
● メインのスキルはバックエンド
○ 要するにアプリケーション寄り
● AWS学習のかなり早い段階でIaCに触れていました
© 2024 Finatext Holdings Ltd.
2


# Page. 4

![Page Image](https://bcdn.docswell.com/page/GJ5GNV9QJ4.jpg)

https://www.terraform.io/
© 2024 Finatext Holdings Ltd.
3


# Page. 5

![Page Image](https://bcdn.docswell.com/page/LE3R2DYZ75.jpg)

よく言われるIaCのメリット
インフラ構築の手順・目的・
ソフトウェア開発と同様の
背景をドキュメント化できる
サイクルでレビュー・適用できる
© 2024 Finatext Holdings Ltd.
設定の適用が冪等
4


# Page. 6

![Page Image](https://bcdn.docswell.com/page/8EDYZP54EG.jpg)

よく言われるIaCのメリット、その中でも...
インフラ構築の手順・目的・
ソフトウェア開発と同様の
背景をドキュメント化できる
サイクルでレビュー・適用できる
© 2024 Finatext Holdings Ltd.
設定の適用が冪等
5


# Page. 7

![Page Image](https://bcdn.docswell.com/page/V7P6DNGVJ8.jpg)

存在して欲しいリソースとそのプロパティを
漏れなく記すドキュメント
© 2024 Finatext Holdings Ltd.
6


# Page. 8

![Page Image](https://bcdn.docswell.com/page/2JV31K6REQ.jpg)

リソースのドキュメントがあると何が嬉しいのか？
1. 設定が文字で残る（grepできる）
2. リソースの依存関係を明示的に理解できる
© 2024 Finatext Holdings Ltd.
7


# Page. 9

![Page Image](https://bcdn.docswell.com/page/5EG32QN67L.jpg)

Hashicorp Conﬁguration Language（HCL）
● インフラの設定を記述するのに適したデータ記述言語の一種
● 関数型っぽさもある
“HCL is a toolkit for creating structured configuration languages that are both
human- and machine-friendly, for use with command-line tools.”
(https://github.com/hashicorp/hcl)
© 2024 Finatext Holdings Ltd.
8


# Page. 10

![Page Image](https://bcdn.docswell.com/page/4JQ5PKQ27P.jpg)

Terraformの記述例（resource block）
© 2024 Finatext Holdings Ltd.
9


# Page. 11

![Page Image](https://bcdn.docswell.com/page/K749YPNPE1.jpg)

HCLのSyntax
&lt;BLOCK TYPE&gt; &quot;&lt;BLOCK LABEL&gt;&quot; &quot;&lt;BLOCK LABEL&gt;&quot; {
# Block body
&lt;IDENTIFIER&gt; = &lt;EXPRESSION&gt; # Argument
}
プロパティを一つずつ埋めていく
シンプルな記法
© 2024 Finatext Holdings Ltd.
10


# Page. 12

![Page Image](https://bcdn.docswell.com/page/LJ1K695X7G.jpg)

設定が文字で残る（grepできる）とよかった例
● S3のランサムウェア対策(AWS Backup / S3 Object Lock / SCPsのDeleteObject)
○ 洗い出しにIaCが重宝した
© 2024 Finatext Holdings Ltd.
11


# Page. 13

![Page Image](https://bcdn.docswell.com/page/GJWDWQ5K72.jpg)

リソースのドキュメントがあると何が嬉しいのか？（再）
1. 設定が文字で残る（grepできる）
2. リソースの依存関係を明示的に理解できる
© 2024 Finatext Holdings Ltd.
12


# Page. 14

![Page Image](https://bcdn.docswell.com/page/4EZG5WNNJ3.jpg)

マネジメントコンソール使ってますか？
© 2024 Finatext Holdings Ltd.
13


# Page. 15

![Page Image](https://bcdn.docswell.com/page/Y76Y9G89EV.jpg)

マネコンは結構よしなにやってくれている
● Lambdaにトリガーを設定したときのpermission
● SESのドメイン認証
© 2024 Finatext Holdings Ltd.
14


# Page. 16

![Page Image](https://bcdn.docswell.com/page/G75GNV9D74.jpg)

AWSの基本はAPI
action
API
© 2024 Finatext Holdings Ltd.
15


# Page. 17

![Page Image](https://bcdn.docswell.com/page/9J2Y535MJR.jpg)

AWSの基本はAPI
リソース×アクション(CRUD)の組に対応した
APIがあり、開発者はそれらを利用して
リソースを操作する
action
API
© 2024 Finatext Holdings Ltd.
16


# Page. 18

![Page Image](https://bcdn.docswell.com/page/DEYGK1KPEM.jpg)

コンソールの裏側
action
API
マネジメント
コンソール
API
© 2024 Finatext Holdings Ltd.
17


# Page. 19

![Page Image](https://bcdn.docswell.com/page/VJNGR2RM78.jpg)

コンソールの裏側
必要なリソースをまとめて作成するような
アクションを行っている
action
API
マネジメント
コンソール
API
© 2024 Finatext Holdings Ltd.
18


# Page. 20

![Page Image](https://bcdn.docswell.com/page/YE9WM1MWE3.jpg)

TerraformがAPIを叩いている
resource block
action
API
© 2024 Finatext Holdings Ltd.
19


# Page. 21

![Page Image](https://bcdn.docswell.com/page/GE8NL4LR7D.jpg)

TerraformがAPIを叩いている
resource block
action
API
必要なリソースを網羅的に記述することが必要
© 2024 Finatext Holdings Ltd.
20


# Page. 22

![Page Image](https://bcdn.docswell.com/page/LELPL6L27R.jpg)

必要なリソースを網羅的に記述するために、
AWSに対する広い理解が必要
IaCというツールの枠を超え、AWS自体の理解を深める手段としての活用もできる
© 2024 Finatext Holdings Ltd.
21


# Page. 23

![Page Image](https://bcdn.docswell.com/page/4JM4M5M97W.jpg)

まとめ
データ記述言語を用いたIaC（=Terraform）のメリット
1. Terraformはリソースの状態を実直に記述する
2. リソースのプロパティがコードで表現されていると、一覧性に長ける
3. 暗黙的なリソースの依存関係を意識したリソース管理ができる
© 2024 Finatext Holdings Ltd.
22


# Page. 24

![Page Image](https://bcdn.docswell.com/page/PJRWV3V979.jpg)



