Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
JAWS DAYS 2022 IaCツール徹底比較
Search
Kazuki Maeda
October 08, 2022
Programming
2.4k
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時代に、プロダクトの数だけ積み上がる所有コストをどうエンジニアリングするか / Engineering the Cost of Ownership
kzkmaeda
1
1.2k
「答えを出す」より「わかる」をつくる
kzkmaeda
1
300
敢えて生成AIを使わないマネジメント業務
kzkmaeda
2
830
Amazon Bedrockで実現する 新たな学習体験
kzkmaeda
3
2.7k
日本の教育の未来 を考える テクノロジーは教育をどのように変えるのか
kzkmaeda
1
400
モノリスの認知負荷に立ち向かう、コードの所有者という思想と現実
kzkmaeda
0
310
エンジニアリング価値を黒字化する バリューベース戦略を用いた 技術戦略策定の道のり
kzkmaeda
9
8.3k
現場の種を事業の芽にする - エンジニア主導のイノベーションを事業戦略に装着する方法 -
kzkmaeda
2
8k
生成AIを用いた 新しい学びの体験を 提供するまでの道のり
kzkmaeda
0
510
Other Decks in Programming
See All in Programming
FreeBSDでZabbixを動かす
kenkino
0
290
巨大モノリシックアプリ モダン化大作戦
ktcryomm
1
1k
Heart of Swift Concurrency
koher
0
840
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
1
470
一人だけ、Kiroが静止する日
hideg
0
110
技術的負債の返済は、AI時代の複利で効く投資 — 経営としての意思決定とその遂行
curekoshimizu
0
1.4k
App Intentsのビルドプロセスを支える技術
kntkymt
0
380
Building an Out-of-Order CPU
latte72
1
780
AI × TiDD / 2026.09.05 Redmine 大阪
tokudiro
1
170
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
3
550
iOSDC Japan 2026 - Swiftで作って学ぼう!データベース自作入門
kaseken
2
170
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
4
3k
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
331
22k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
990
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
280
Site-Speed That Sticks
csswizardry
13
1.5k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Exploring anti-patterns in Rails
aemeredith
4
510
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
HDC tutorial
michielstock
2
870
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ライフを楽しみましょう!!
ありがとうございました