Slide 1

Slide 1 text

開示範囲: 1 〜成果集計処理を劇的に改善!〜 troccoとAmazon Redshiftで挑んだ コンテンツマーケティングの分析基盤構築 株式会社キュービック テクノロジーエキスパートセンター Tech Lead 尾﨑勇太 Terraform Registryで公開されている Terraform Modulesが便利だった件 株式会社キュービック テクノロジーエキスパートセンター SRE 森祐太朗

Slide 2

Slide 2 text

自己紹介 2 株式会社キュービック テクノロジーエキスパートセンター(TEC) SRE 森 祐太朗 趣味:ブログ執筆・博物館や水族館巡り 経歴:中小SIer(ネットワークエンジニア) →ヘルステック系ベンチャー(SRE) →キュービック(SRE) プレーリーカード @y0u281

Slide 3

Slide 3 text

3 ■さまざまなユーザーの不を解消する事業展開 かんたん 履歴書作成ツール 「ミライトーチ」   スマホだけで完結! 感謝とリスペクトを伝える 社内コミュニケーション ツール 総合比較メディア

Slide 4

Slide 4 text

■キュービックについて 株式会社キュービック /CUEBiC Inc. 社名 事業 設立 資本金 拠点 2006 年 10 月 24 日 31,000,000円 人員 308 名(単体)※インターンを含む 484 名(連結) ※2023年8月末時点 デジタルメディア事業、集客支援事業 ほか 東京、福岡

Slide 5

Slide 5 text

● 背景 ● Terraformを使ったIaC開発課題 ● Terraform Registryの紹介 ● 使用例紹介 ● まとめ 目次

Slide 6

Slide 6 text

背景 似たようなAWSリソースを毎回手作業 で作るのはしんどいよな。。。 新規プロダクト作るからAWSリ ソース準備よろしく!! SRE

Slide 7

Slide 7 text

Terraformを使ったIaC開発課題 ● Terraform自体書ける人が社内に少 ない ● 抽象化できずリソース数が多くなる (後述)

Slide 8

Slide 8 text

Terraformを使ったIaC開発課題

Slide 9

Slide 9 text

Terraformを使ったIaC開発課題 これらもまとめて作成 ● パブリックサブネット ● プライベートサブネット ● NAT ● インターネットゲートウェイ

Slide 10

Slide 10 text

Terraformを使ったIaC開発課題 同様の構成をTerraformで記述する場合 ● aws_vpc ● aws_subnet ● aws_internet_gateway ● aws_nat_gateway ● aws_route_table ● aws_route_table_association ● aws_eip サブネットに関しては CIDRの差分が面倒

Slide 11

Slide 11 text

Terraformを使ったIaC開発課題 モジュールを内製化? 結局最初の構築が大変 VPCモジュール ● aws_vpc ● aws_subnet ● aws_internet_gateway ● aws_nat_gateway ● aws_route_table ● aws_route_table_association ● aws_eip

Slide 12

Slide 12 text

Terraformを使ったIaC開発課題 Terraformを教える余裕がな いから抽象的な表現でイイ感 じに構築したい SRE AWS CDKはL2コンストラクトでイイ 感じに書いてくれます

Slide 13

Slide 13 text

Terraform Registryの紹介 !! SRE Terraform Registryにイイ感じに 抽象化されたモジュールがあります

Slide 14

Slide 14 text

module "vpc" { source = "terraform-aws-modules/vpc/aws" name = "my-vpc" cidr = "10.0.0.0/16" azs = ["ap-northeast-1a", "ap-northeast-1c", "ap-northeast-1d"] private_subnets = ["10.0.1.0/24", "10.0.2.0/24", "10.0.3.0/24"] public_subnets = ["10.0.10.0/24", "10.0.20.0/24", "10.0.30.0/24"] database_subnets = ["10.0.101.0/24", "10.0.102.0/24", "10.0.103.0/24"] enable_nat_gateway = true one_nat_gateway_per_az = true tags = { Terraform = "true" Environment = "dev" } } 使用例紹介

Slide 15

Slide 15 text

使用例紹介 DBサブネット プライベートサブネット パブリックサブネット

Slide 16

Slide 16 text

まとめ ● ゼロイチでリソースを作るときにまずはレジスト リのモジュールをチェックしてみる ● 少ない記述量で抽象的にイイ感じに作ってくれ る Terraform Registryで公開され ているTerraform Modulesが便 利だった件 https://cuebic.hatenablog.co m/entry/2023/06/08/160631

Slide 17

Slide 17 text

17 ご清聴、ありがとうございました