Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
JAWS DAYS 2022 IaCツール徹底比較
Search
Kazuki Maeda
October 08, 2022
Programming
2.3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
JAWS DAYS 2022 IaCツール徹底比較
Kazuki Maeda
October 08, 2022
More Decks by Kazuki Maeda
See All by Kazuki Maeda
「答えを出す」より「わかる」をつくる
kzkmaeda
1
260
敢えて生成AIを使わないマネジメント業務
kzkmaeda
2
810
Amazon Bedrockで実現する 新たな学習体験
kzkmaeda
3
2.4k
日本の教育の未来 を考える テクノロジーは教育をどのように変えるのか
kzkmaeda
1
380
モノリスの認知負荷に立ち向かう、コードの所有者という思想と現実
kzkmaeda
0
300
エンジニアリング価値を黒字化する バリューベース戦略を用いた 技術戦略策定の道のり
kzkmaeda
9
8.2k
現場の種を事業の芽にする - エンジニア主導のイノベーションを事業戦略に装着する方法 -
kzkmaeda
2
7.9k
生成AIを用いた 新しい学びの体験を 提供するまでの道のり
kzkmaeda
0
500
生成AIによって変わる世界 -可能性とリスクについて考える-
kzkmaeda
2
450
Other Decks in Programming
See All in Programming
SlackアプリとLambdaの 連携を構築した話
pawn_4_s
1
120
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.5k
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
170
テーブルをDELETEした
yuzneri
0
140
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
180
TSX の <Hoge<Fuga>> という構文に驚いた話 / tsx-type-argument-syntax
kanaru0928
0
230
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
190
OpenSpecのproposalにbrainstormingを持たせてみた
tigertora7571
1
220
プロポーザルを書いてもらう
pvcresin
0
500
freee が目指す データ マネジメント戦略 AI-Ready 時代を支える 攻めのガバナンスとは
freee
PRO
0
360
今さら聞けない .NET CLI
htkym
0
190
170k Jobs a Day on GKE: Scaling Mercari's CI Platform - and What's Next for AI-Native Development
junyaokabe
0
110
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.3k
Skip the Path - Find Your Career Trail
mkilby
1
180
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Paper Plane
katiecoart
PRO
2
53k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
200
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
Google's AI Overviews - The New Search
badams
0
1.1k
WENDY [Excerpt]
tessaabrams
11
39k
How to Ace a Technical Interview
jacobian
281
24k
Transcript
IaCツール徹底比較 ~Slack botの開発に最も適した IaCツールダービー~ @kzk_maeda
Kazuki Maeda @kzk_maeda SRE @atama plus AWS Community Builders /
AWS Startup Community Core Member --- 日系電機メーカー法務→Recruitでインフラエンジニアとして、オンプレ、社内ITシステムなど経験したあとクラウド、 PMなど→スタートアップに転身してEM→現職 AWSはサーバーレス・データ基盤周りの技術が好き Lambda / StepFunctions / Glue / MWAA / Athena を触っていきたい IaCはTerraformが好き 競馬は全くわかりません 実況・解説
本日の趣旨 みなさん、IaC(Infrastructure as Code)してますか?? どのIaCツールを選定すればいいか、迷うこと、多いですよね?? 今日は特定のシステムを複数のIaCツールで作ってみた時の比較を行い、 それぞれのツールにどんな特徴があるのかを調べていきたいと思います 普通にやっても面白くないので競馬形式でいきます!
出走馬紹介
本日のレースの出走馬紹介 1 AWS CDK 父馬:AWS社 / 母馬:CloudFormation • AWS公式が提供する、AWSリソースをプログラミング言語で 記述するためのFramework
• PythonやTypeScriptなどが利用可能 • 裏側ではCloudFormationが利用される • AWS公式のためのリソース追従性や拡張性の高さに期待
本日のレースの出走馬紹介 2 Terraform 父馬:HashiCorp社 / 母馬:Go言語 • HashiCorp社によって提供される、オープンソースの IaC ツール
• マルチクラウドプラットフォームや監視サービスなどの周辺 ツールにも対応 • 広く利用され、知見が世の中に多く出回っている人気の高さ が特徴
本日のレースの出走馬紹介 3 AWS SAM 父馬:AWS社 / 母馬:CloudFormation • AWS社によって提供される、サーバーレスアプリケーション 構築に特化したオープンソースの
IaCツール • 裏側ではCloudFormationが利用される • サーバーレスリソースを簡単に記述できる敏捷性の高さで逃 げ切れるか
本日のレースの出走馬紹介 4 Serverless Framework 父馬:Serverless社 / 母馬:Node.js • Serverless社によって提供される、サーバーレスアプリケー ション構築に特化したオープンソースの
IaCツール • Node.jsで記述されており、コミュニティによる pluginも豊富 • SAMに引けを取らない敏捷性に加え、マルチクラウドのため 対応できるコースも多い
コース紹介
アーキテクチャ • SlackからChatbot経由でLambdaを起動し、なんらかのデータをDynamoDBに格納 • ChatbotというServerless Stackではあまり見ないサービスを利用したい コーナー(拡張性、敏捷性、運用性) • 対応サービスの豊富さ •
Lambdaでの機能開発のしやすさ • 継続的な改善のしやすさ コースの紹介 IaC対象
スタート!!!!
第1コーナー(拡張性) CDK / Terraform • 多くのAWSサービスを網羅しており、基本的なリソース作成は可能 • しかし!2022/10時点でTerraformはAWS Chatbotに対応していない※1 ◦
3rd partyのツールなので追従性は完璧ではない ※ https://github.com/aws/aws-sdk-go/issues/3582
第1コーナー(拡張性) SAM / Serverless framework • APIGW、Lambda、DynamoDBといった、よくあるServerlessリソースの構築は高度に抽象 化されていて非常に便利 • 一方でそこから外れたリソースを作成しようと思うと、
CloudFormationのテンプレートを記述 する必要がある ◦ Frameworkにより抽象化されたリソースと素で定義されたリソースが混在する
幅広いリソースに対応し、記述もしやすいCDKが一歩リード! 拡張性では有利と思われたTerraformは少し遅れる展開!
第2コーナー(機敏性) SAM / Serverless framework • LambdaやDynamoDBリソースをローカルで立ち上げて Functionの実行確認を行うことがで きる •
一方、Chatbotの様なリソースはローカルで立ち上げることができるわけではないので幅広い リソースを統合的に動作確認することは困難 ローカルで所定の Lambda runtimeを実行するイメージが立ち上がり、よく見る Lambdaのログが出力されている
第2コーナー(機敏性) CDK • cdk watchコマンドによるhotswap、ローカルでのログ確認が便利過ぎて Lambdaの機能開 発が捗る! Lambdaの変更を検知して、 CFn stackを飛ばして
自動デプロイ 手元でAPIの実行ログを確認し てデバッグ
第2コーナー(機敏性) Terraform • 毎回 terraform apply コマンドを実行して、Terraformで定義したリソースをAWSにデプロイ してから確認する必要があり、Lambdaの軽微な修正を即座に確認するには向かない・・
ローカル環境を模擬できるSAM / Serverlessが追い上げてきてるが CDKもwatchが強くリードを崩さず!
第3コーナー(運用性) Terraform • Terraform Cloud!!!! • 容易な設定でTerraformの 実行環境を得られる • グラフィカルなdiff参照、
Workflow機能などTerraform を利用するならセットで 使いたい • 回しものではありません RepoにpushするとCloudでplanが実行され、どのような変更 が走るかが視覚的に理解できる
第3コーナー(運用性) Serverless CI/CD • Serverless frameworkで定義したテンプレートに対して CI/CDを実行するSaaS • Terraform Cloudほどの機能性は無いが、リポジトリとの連携など容易に実行することが可能
第3コーナー(運用性) CDK / SAM • Code Pipelineや、Ciecle CI / Github
actionsを持ちたCI/CDのパイプラインを柔軟に構築 することは可能 • ある程度CI/CDに関する知識を求められ、初期設定や configの管理運用が必要となる
強力なCI/CDサービスにより、Terraformが追い上げてきた!! 果たして最終的に勝利するのは!
結果発表!!!!
結果発表
結果発表 CDK Terraform SAM Serverless 拡張性 ◎ AWSリソース一般に 同レベルで管理可能 ◎
AWSリソースの追従 性は高い AWS外のリソース管 理も可能 ◯ CFnのテンプレートを ベタで記述することで 拡張可能 ◯ 同左 AWS外のリソースも管 理できる 機敏性 ◎ SAMと組み合わせた ローカル環境 watchによるhotswap が可能 △ AWSへのデプロイが 必須となり、手軽な管 理は難しい ◯ 対応リソースの範囲内 であればローカル環境 を簡単に立ち上げられ る ◯ 同左 運用性 ◯ Code系やGithub actionsなど用いた一 般的なCIが可能 ◎ Terraform Cloudの存 在は大きい ◯ 一般的なCIは可能 エコシステムは途上か もしれない ◎ Serverless CI/CDが ある pluginのエコシステム も豊富
最後に、真面目な話 • 最適なIaCツールの選定は、作ろうとしているシステムの特性や、どのように運用する想定か、 またチームのスキル感など様々な条件に左右されます • 何が正解で、何が不正解、どれが最も良い、といった単純な比較ができるようなものではありま せん • システム特性やチーム特性、運用イメージなど複数の項目から最適な IaCツールを選定してい
き、快適なIaCライフを楽しみましょう!!
ありがとうございました