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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
敢えて生成AIを使わないマネジメント業務
kzkmaeda
2
760
Amazon Bedrockで実現する 新たな学習体験
kzkmaeda
3
2.2k
日本の教育の未来 を考える テクノロジーは教育をどのように変えるのか
kzkmaeda
1
340
モノリスの認知負荷に立ち向かう、コードの所有者という思想と現実
kzkmaeda
0
290
エンジニアリング価値を黒字化する バリューベース戦略を用いた 技術戦略策定の道のり
kzkmaeda
9
8k
現場の種を事業の芽にする - エンジニア主導のイノベーションを事業戦略に装着する方法 -
kzkmaeda
2
7.6k
生成AIを用いた 新しい学びの体験を 提供するまでの道のり
kzkmaeda
0
480
生成AIによって変わる世界 -可能性とリスクについて考える-
kzkmaeda
2
440
新しいことを組織ではじめる、そしてつづける
kzkmaeda
4
1.1k
Other Decks in Programming
See All in Programming
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
170
Claspは野良GASの夢をみるか
takter00
0
170
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
470
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
310
These Five Tricks Can Make Your Apps Greener, Cheaper, & Nicer
hollycummins
0
280
oxlintはeslint/typescript-eslintを置き換えられるのか
shomafujita
2
330
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
510
AIで効率化できた業務・日常
ochtum
0
110
The Arts and Crafts of Work in the AI Era — Toward Mastery in Software Development
kuranuki
1
730
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
190
AIエージェントと協働するCLI開発 — BunとOpenClawで学んだこと
yoshikouki
1
240
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
120
Featured
See All Featured
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
600
Exploring anti-patterns in Rails
aemeredith
3
400
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
380
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
560
How to Talk to Developers About Accessibility
jct
2
220
Measuring & Analyzing Core Web Vitals
bluesmoon
9
860
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
330
Designing Powerful Visuals for Engaging Learning
tmiket
1
400
A Tale of Four Properties
chriscoyier
163
24k
For a Future-Friendly Web
brad_frost
183
10k
GraphQLとの向き合い方2022年版
quramy
50
15k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
200
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ライフを楽しみましょう!!
ありがとうございました