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
AWSのインフラ構築ツールを比較してみよう
Search
ohori97
June 30, 2023
Technology
420
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWSのインフラ構築ツールを比較してみよう
https://infra365.connpass.com/event/277147/
ohori97
June 30, 2023
Other Decks in Technology
See All in Technology
[RSJ26] Building a VLA Model Based on Self-Distilled Classification
keio_smilab
PRO
0
190
AI時代におけるプロダクト横断勉強会の設計
zozotech
PRO
0
150
Azure App Service / Container Apps の組み込み認証
kuniteru
0
190
こんなアーキテクチャ図は嫌だ BEYOND THE TIME: 半年後の自分へ贈る15のメッセージ / 15 of Anti-pattern in AWS Architecture Diagrams
naospon
3
240
Driving AI Adoption Using In-House GPUs to Serve Qwen
po3rin
2
450
Nav2、Nav3 ... はたまた自作?〜 作って理解する Nav3 の設計意図 〜 / Nav2, Nav3 ... or Build Your Own? — Understanding Nav3's design intent by building it from scratch
yanzm
0
230
その指示、Bobにしっかり伝わってる?初心者でも即実践できる プロンプト/コンテキスト設計のコツ
muehara
1
140
Kiro Crewしか勝たん!?
miu_crescent
PRO
0
180
Tab5をRubyで動くパソコンにする
kishima
1
180
どんな手を使っても絶対間に合わせるスケジューラ
asari194617
0
1.6k
V8コントリビュート超入門
riyaamemiya
0
140
Microsoft 365 Copilot chat -tekoälypalvelun tietosuojaongelmat
hponka
0
190
Featured
See All Featured
Practical Orchestrator
shlominoach
191
12k
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
510
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
Agile that works and the tools we love
rasmusluckow
331
22k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
400
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
How to Ace a Technical Interview
jacobian
281
24k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
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 に認定