Slide 1

Slide 1 text

2024.5.23 nagoya.ts #1 TATSUNO Yasuhiro 2024.6.27 JAWS-UG 名古屋 x Media-JAWS @中京テレビ TATSUNO Yasuhiro terraform-provider-aws にプルリクして マージされるまで 通常 LT

Slide 2

Slide 2 text

自己紹介 - TATSUNO Yasuhiro - TreasureData所属 Staff Engineer, Realtime 2.0 CDP - 好きな AWS は Lambda, StepFunctions, S3 - severless-framework(v1〜v2)コミッター - SNS: @exoego on GitHub, 𝕏(Twitter)

Slide 3

Slide 3 text

Q.  Terraform で AWS 構築してますか? ✋

Slide 4

Slide 4 text

Terraform とは - Hashicorp のコード構成管理ツール IaC 製品 (Infrastructure as Code)。今日の発表に出てきたような さまざまな AWS をコードから自動構築 - 2014年にリリース、多くの企業で採用。実戦経験豊富 - AWS 初め Azure, GCP, OCI, Cloudflare, Snowflake など 様々な製品に対応してるのも人気の理由 - 独自言語 HCL に加え、AWS CDK との連携で TypeScript, Python, Java, C#, Go でも記述可能

Slide 5

Slide 5 text

Terraform と AWS - terraform-provider-aws というプロバイダー     (ライブラリのようなもの)として提供 - 誰もが欲しいメジャー機能はリリースから比較的すぐに 開発される - マイナー機能はお前がやらねば誰がやる

Slide 6

Slide 6 text

使ってる AWS で困ったので、やってみた MemoryDB for Redis 2021/9 GA VPC Lattice 2023/3 GA

Slide 7

Slide 7 text

意外と簡単……プルリクするまでは…… - プルリクで従うべき手順がドキュメントに書いてる - ざっくり言えば AWS SDK 使ってリソースを探したり、変 更するだけ。ふだん SDK でアプリ開発してるのと同じ - どの AWS も設計がほぼ一緒なので、既存コードを参考に すぐ書けるものもあった - 受け入れテスト(実際の AWS にデプロイして実行)も コード化されてるので、動作確認も簡単だった

Slide 8

Slide 8 text

いちばん大変なのは…… レビューがマジで遅い!

Slide 9

Slide 9 text

ぼくのプルリクがマージされるまでの日数 - 5日 ←まあ OSS なら速い方 - 41日 ←これくらいもよくある - 229日 ←えっ…… - 315日 ←オイオイオイ 何度もレビュー・修正を繰り返して遅くなったので はなく、レビュー開始がただ遅い。マージはすぐ。 クリティカルな課題は正攻法(プルリク)とは別に 暫定策を並行で進めるべし!

Slide 10

Slide 10 text

優先度を左右するらしいさまざまな要素 - リソース制約 ⇨まあそうですよね - Customer や Partner(AWS など)からの要望 - Customer -> Customer support, Sales Eng. -> Hashicorp(やってみたけど、 大口顧客でないせいかダメでした……) - Customer -> AWS Solution Architects -> Hashicoprp - Community からの要望 - GitHub の issue/PR への reaction (👍) How We Priotize - https://hashicorp.github.io/terraform-provider-aws/prioritization/

Slide 11

Slide 11 text

AWS コミュニティでできることは その機能/バグ修正いいねと思ったら 👍 いいね を残す それだけで決まらないにしても

Slide 12

Slide 12 text

ところで みなさん これって AWS IAM あるある じゃないですか? Error updating IAM policy arn:aws:iam::1234567890:policy/MyAwesomePolicy: LimitExceeded: Cannot exceed quota for PolicySize: 6144 ぼくは年に数回やらかします

Slide 13

Slide 13 text

デプロイ前=plan 時(CIなど) に Terraform で IAM ポリシーサイ ズをチェックしよう!! https://bit.ly/tf33088 マージされるように 👍いいね で応援ください