Slide 1

Slide 1 text

IaC完全に理解した 話す人:ゆの @Yuno_nekoisland 2024/04/26 エンジニア作業飲み集会 LT会 #5-○○完全に理解した 1

Slide 2

Slide 2 text

0.何者???? 2024/04/26 エンジニア作業飲み集会 LT会 #5-○○完全に理解した 2 名前:ゆの(@Yuno_nekoisland) • SIerにいた人⇒転職活動中 • AWSよく触ってた • 最近はGCP触ってる

Slide 3

Slide 3 text

目次 2024/04/26 エンジニア作業飲み集会 LT会 #5-○○完全に理解した 3 1. IaCとは 2. 実践してみた

Slide 4

Slide 4 text

1.IaCとは 2024/04/26 エンジニア作業飲み集会 LT会 #5-○○完全に理解した 4 Infrastructure as Code 手動で設定していたインフラストラクチャを、コードによる管理・デプロイが可能 ■ツール AWS CloudFormation Azure Resource Manager

Slide 5

Slide 5 text

1.IaCとは 2024/04/26 エンジニア作業飲み集会 LT会 #5-○○完全に理解した 5 ■メリット • 複製可⇒複数環境への転用可 • ヒューマンエラーの抑制 • Git等でのバージョン管理

Slide 6

Slide 6 text

1.IaCとは 2024/04/26 エンジニア作業飲み集会 LT会 #5-○○完全に理解した 6 ・GUIでの設定 手動操作が必要 ⇒本番作業手順書作るのも大変……

Slide 7

Slide 7 text

1.IaCとは 2024/04/26 エンジニア作業飲み集会 LT会 #5-○○完全に理解した 7 ・IaCでの設定 明示的に各種項目の設定をコーディング GUIだと暗黙的に作成される設定も多いが、 IaCだと設定内容を意図的に設定できる。

Slide 8

Slide 8 text

1.IaCとは 2024/04/26 エンジニア作業飲み集会 LT会 #5-○○完全に理解した 8 ・IaCでの設定 明示的に各種項目の設定をコーディング terraform plan コマンドでdry-runできる

Slide 9

Slide 9 text

1.IaCとは 2024/04/26 エンジニア作業飲み集会 LT会 #5-○○完全に理解した 9 ・IaCでの設定 明示的に各種項目の設定をコーディング terraform apply コマンドでデプロイ

Slide 10

Slide 10 text

1.IaCとは 2024/04/26 エンジニア作業飲み集会 LT会 #5-○○完全に理解した 10 ・IaCでの設定 明示的に各種項目の設定をコーディング Cloud Storageのバケットが作成できている。

Slide 11

Slide 11 text

1.IaCとは 2024/04/26 エンジニア作業飲み集会 LT会 #5-○○完全に理解した 11 ■デメリット • 学習コストが高い • 導入するツールそれ自体/記法の理解が必要 • IaCツールを実行する環境を用意する必要がある • Terraformで言えば、CLIの実行が必要 • バージョン更新もあるため、管理コストもある

Slide 12

Slide 12 text

2.実践してみた 2024/04/26 エンジニア作業飲み集会 LT会 #5-○○完全に理解した 12 ■構成図 • 囲った範囲をTerraform化

Slide 13

Slide 13 text

2.実践してみた 2024/04/26 エンジニア作業飲み集会 LT会 #5-○○完全に理解した 13 ■構成図 ・Bucket内のフォルダも宣言的に指定 ・Schedulerでの時間起動により、 Pub/SubトピックからFunction実行 ・データソースに合わせて、FunctionのEventarcトリガーを指定

Slide 14

Slide 14 text

2.実践してみた 2024/04/26 エンジニア作業飲み集会 LT会 #5-○○完全に理解した 14 ■工夫 • 工夫中……! • main.tfにすべての定義をしている • ⇒サービスごとにmain.tfを分けるべきか? ・Cloud Storageのフォルダ ・Cloud Functions ・BigQueryのテーブル ⇒リソースが多いため、1ファイルにまとめずに サービスごとのディレクトリを切るべきか?

Slide 15

Slide 15 text

2.実践してみた 2024/04/26 エンジニア作業飲み集会 LT会 #5-○○完全に理解した 15 ■工夫 GCP └─main.tf GCP ├─Cloud Functions ├─Cloud Scheduler ├─Cloud Storage …… ・クラウド毎/環境毎等でのディレクトリ構成もできる。 ただ、今回の構成程度の規模なら分ける意味もあるのか……等とも考えたりする。

Slide 16

Slide 16 text

まとめ 2024/04/26 エンジニア作業飲み集会 LT会 #5-○○完全に理解した 16 インフラストラクチャをコード管理できる感動……! ブラウザ上の設定画面をぺちぺち貼り付けて本番リリース手順書作らなく てもよい感動……! 皆もIaCしよう!