terraformのすゝめ

560 Views

October 22, 24

スライド概要

profile-image

ソフトウェアエンジニア

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

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

2.

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

3.

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

4.

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

5.

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

6.

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

7.

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

8.

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

9.

Hashicorp Configuration 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

10.

Terraformの記述例(resource block) © 2024 Finatext Holdings Ltd. 9

11.

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

12.

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

13.

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

14.

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

15.

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

16.

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

17.

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

18.

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

19.

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

20.

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

21.

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

22.

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

23.

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