Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWSのインフラ構築ツールを比較してみよう
Search
ohori97
June 30, 2023
Technology
0
390
AWSのインフラ構築ツールを比較してみよう
https://infra365.connpass.com/event/277147/
ohori97
June 30, 2023
Tweet
Share
Other Decks in Technology
See All in Technology
チーリンについて
hirotomotaguchi
3
1.2k
Playwrightのソースコードに見る、自動テストを自動で書く技術
yusukeiwaki
13
5k
バグハンター視点によるサプライチェーンの脆弱性
scgajge12
3
1k
ML PM Talk #1 - ML PMの分類に関する考察
lycorptech_jp
PRO
1
740
ログ管理の新たな可能性?CloudWatchの新機能をご紹介
ikumi_ono
1
550
Lambdaの常識はどう変わる?!re:Invent 2025 before after
iwatatomoya
1
360
Edge AI Performance on Zephyr Pico vs. Pico 2
iotengineer22
0
110
生成AIでテスト設計はどこまでできる? 「テスト粒度」を操るテーラリング術
shota_kusaba
0
550
AI 駆動開発勉強会 フロントエンド支部 #1 w/あずもば
1ftseabass
PRO
0
220
品質のための共通認識
kakehashi
PRO
3
220
コミューンのデータ分析AIエージェント「Community Sage」の紹介
fufufukakaka
0
440
最近のLinux普段づかいWaylandデスクトップ元年
penguin2716
1
670
Featured
See All Featured
Site-Speed That Sticks
csswizardry
13
990
4 Signs Your Business is Dying
shpigford
186
22k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Raft: Consensus for Rubyists
vanstee
141
7.2k
For a Future-Friendly Web
brad_frost
180
10k
Bash Introduction
62gerente
615
210k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
390
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
Transcript
AWSのインフラ構築ツールを 比較してみよう おほり @ 6/24 インフラ技術基礎勉強会 #3 1
おしながき 1. 自己紹介 2. ツールの紹介 2.1. Rain 2.2. SAM /
SAM CLI 2.3. CDK / CDK Toolkit 2.4. Copilot CLI 3. まとめ 4. おわりに AWSが(発端や主体となって)開発しているインフラ構築ツール・フレームワークをご紹介 2
1. 自己紹介 おほり (Ayumu Horii) • 理工系出身 • クラウドアーキテクト歴 3年+
• IaC コンテナ技術が好き • 推し: こぎみゅん(サンリオキャラ) • 趣味: お散歩、バイク、VRChat … 3
2. ツールのご紹介 4
2.1 Rain aws cli の使いづらさを解消 5 https://github.com/aws-cloudformation/rain • CloudFormation を操作するためのCLIツール
• “aws cloudformation” コマンドの上位互換的な 存在 ◦ ひな形生成 ◦ テンプレート整形 ◦ イケてるログ表示 ◦ イケてるリソース一覧表示 • 巷の情報は少ない(が、シンプルなので別に困ら ない)
2.1 Rain (ひな型の生成) AWSTemplateFormatVersion: "2010-09-09" Description: Template generated by rain
Resources: MyInstance: Type: AWS::EC2::Instance Properties: AdditionalInfo: CHANGEME # Optional Affinity: CHANGEME # Optional AvailabilityZone: CHANGEME # Optional BlockDeviceMappings: - DeviceName: CHANGEME Ebs: # Optional DeleteOnTermination: false # Optional … 6 $ rain build AWS::EC2::Instance
2.2 SAM CFn + サーバレスアーキテクチャ特化 7 https://github.com/aws/aws-sam-cli • SAM (Serverless
Application Model) • サーバレスリソース用の短縮記法 ◦ 通常 CFn 記法の拡張 ◦ 短く読みやすい ◦ AWS がネイティブ対応 ◦ サーバレス系のみ(Lambda, DynamoDB, …) • テストツールが充実 ◦ コマンド一発でローカルLambdaをデプロイしてテ スト実行 ◦ CFn を介さずに Lambda を更新する SAM Acceralate • パイプライン構築もかんたん ◦ sam pipeline
2.2 SAM (記述量の削減) HelloWorldFunction: Type: AWS::Serverless::Function Properties: CodeUri: hello_world/ Handler:
app.lambda_handler Runtime: python3.9 Architectures: - x86_64 Events: HelloWorld: Type: Api Properties: Path: /hello Method: get Environment: Variables: TABLE_NAME: !Ref Table TABLE_ARN: !GetAtt Table.Arn Policies: - DynamoDBCrudPolicy: TableName: !Ref Table Table: Type: AWS::DynamoDB::Table Properties: AttributeDefinitions: - AttributeName: hello AttributeType: S BillingMode: PAY_PER_REQUEST KeySchema: - AttributeName: hello KeyType: HASH StreamSpecification: StreamViewType: NEW_AND_OLD_IMAGES 8
2.3 CDK 豊富なライブラリとコミュニティ 9 https://github.com/aws/aws-cdk • AWS CDK (Cloud Development
Kit) • インフラをプログラミング言語で記述 ◦ TypeScript, Python 等 ▪ TypeScriptなら型の恩恵を享受できる ◦ プログラミング言語と同じ開発体験 ◦ ライブラリを扱える ▪ 抽象化で記述量を大幅削減 ◦ 最終的に CFn テンプレートに変換 • 管理負荷は高め ◦ かなり頻繁な更新(良いこと) ◦ Node.js の管理 • 学習コストも高め ◦ CFnに加え、言語の知識が必要 • コミュニティが超活発 ◦ Construct Hub: 様々なライブラリが大量に公開 ◦ JAWS にも CDK 支部が存在
2.3 CDK (Construct Hub) 10
2.4 AWS Copilot CLI 誰でも簡単コンテナデプロイ 11 https://github.com/aws/copilot-cli • AppRunner と
ECS へのデプロイに特化したCLI ツール ◦ GitHub Copilot とは無関係 • インフラを意識せずコンテナをデプロイ ◦ 対話形式 ◦ ベストプラクティスな構成を自動適用 • 独自のリソース概念とテンプレート記法 ◦ AWSリソースを抽象化 ◦ 最終的には CFn でデプロイ • 拡張も可能(その気になれば) ◦ CFn テンプレートを追加してカスタムリソース を追加
2.4 Copilot CLI (対話形式) 12
3. まとめ 13
まとめ (むりやり比較表) Rain SAM CDK AWS Copilot こんな人向け CloudFormation を
もっと便利に使いたい サーバレス開発を 加速させたい プログラミング言語と コミュニティの恩恵を 受けたい コンテナを楽に デプロイ・運用したい 汎用性の高さ ★★★ ★★★ ★★★ ★★ 運用負荷の低さ ★★★ ★★★ ★★ ★★★ 難易度の低さ ★★ ★★ ★ ★★★ コミュニティの 活発さ(主観) ★★ ★★ ★★★ ★★ 14
4. おわりに 15
おわりに 16 • それぞれ用途が違うので、目的に合わせて選ぶと良い ◦ SAMとCDKを組み合わせる手法も存在 • 食わず嫌いは損!なんにせよ触ってみよう • 今回紹介できなかった方々
: Amplify CLI, CloudFormation CLI
弊社について 17 株式会社エーピーコミュニケーションズ(APC) • クラウドネイティブ環境の内製化・自動化支援 • 洒落たイベント会場(@神田本社) 貸し出してます • 最近
◦ カプセルトイを企画・発売(?) ◦ APN Certification Distinction 100 に認定