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
CDK + ecspressoでお手軽コンテナ3分クッキング
Search
akita
May 28, 2023
Technology
1.3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CDK + ecspressoでお手軽コンテナ3分クッキング
2023-05-29(月)AWS-UG名古屋 のLT資料です。
akita
May 28, 2023
Transcript
32 slides
JAWS-UG 名古屋 AWS Demo-1グランプリ 2023/05/29 あきた(yoyoyo_pg) CDK + ecspresso でお手軽 コンテナ3分クッキング
• あきた(@yoyoyo_pg) https://qiita.com/yoyoyo_pg • 名古屋在住 • Javaのバックエンド開発を2年 • AWS歴は1年半 •
好きなAWSサービス:AWS CDK • 社外のLT初登壇です! 自己紹介
• 5/20(土)にCDK Conferenceに現地参加してきました! • CDKの盛り上がりが凄い...! 発表の前に👀
• パブリックサブネットにALB • プライベートサブネットにECSコンテナ(nginx) 本日の献立🍽
• AWS CDK v2 ◦ ECSサービス、タスク以外を定義 ◦ VPC,SG,ALB,TG,ECSクラスター,各種ロール etc… •
コンテナデプロイツールのecspresso☕ ◦ ECSサービス、タスクを定義 本日の材料🍽
• AWS Cloud Development Kit (AWS CDK) ◦ 既存のプログラミング言語を利用し、AWSインフラ リソースの定義が可能
◦ cdk deploy スタック名でコードを基に CloudFormationスタックがデプロイ • 個人的に便利だと感じる点 ◦ リソースに応じたIAMロール、ポリシーが自動生成 される点 ◦ 条件分岐やコンストラクトを利用する事で、複数環 境・アプリケーションの展開が容易な点 AWS CDKとは
• Amazon ECSのデプロイツール(OSS) ◦ ECSサービス、タスクに関わる最小限のリソースを コード管理する事が可能 ◦ ecspresso initで既存サービス、タスク定義を設定 ファイルとしてインポート
◦ ecspresso deployで、ファイルを基にデプロイ • 個人的に便利だと感じる点 ◦ ファイル内でCloudFormationのスタックのOutput やSSMパラメータストアの参照が可能 ecspressoとは☕
• AWS CDK + ecspressoの構成ファイルを用意します。 • devcontainerの設定ファイルを準備した上で、 Github Codespacesを立ち上げます。 •
Github Codespaces上でクレデンシャルを設定しま す。 • cdk deploy と ecspresso deploy を実行すれば完成! 構築レシピ📖
➔ AWS CDK + ecspressoの構成ファイルを用意します。 • devcontainerの設定ファイルを準備した上で、 Github Codespacesを立ち上げます。 •
Github Codespaces上でクレデンシャルを設定しま す。 • cdk deploy と ecspresso deploy を実行すれば完成! 構築レシピ📖
➔ AWS CDK + ecspressoの構成ファイルを用意します。 構築レシピ📖
構築のポイント • AWS CDK側:生成した各種リソースのパラメータを SSMパラメータストアに格納 • ecspresso側:SSMパラメータストアの値を参照
構築のポイント • AWS CDK側:生成した各種リソースのパラメータを SSMパラメータストアに格納 • ecspresso側:SSMパラメータストアの値を参照 ➔ CDKでコンテナ関連リソースを構築し直しても、 ecspresso
deploy時に動的に参照先を切り替えられる
構築のポイント • AWS CDK側:生成した各種リソースのパラメータを SSMパラメータストアに格納 • ecspresso側:SSMパラメータストアの値を参照 ➔ CDKでコンテナ関連リソースを構築し直しても、 ecspresso
deploy時に動的に参照先を切り替えられる ➔ CDKベストプラクティスの1つである「自動で生成され るリソース名」が使いやすくなる
構築のポイント • AWS CDK側:生成した各種リソースのパラメータを SSMパラメータストアに格納 cdk-ecspresso-stack.ts
構築のポイント • ecspresso側:SSMパラメータストアの値を参照 ecspresso.yml ecs-service-def.json
• AWS CDK + ecspressoの構成ファイルを用意します。 ➔ devcontainerの設定ファイルを準備した上で、 Github Codespacesを立ち上げます。 •
Github Codespaces上でクレデンシャルを設定しま す。 • cdk deploy と ecspresso deploy を実行すれば完成! 構築レシピ📖
• AWS CDK + ecspressoの構成ファイルを用意します。 ➔ devcontainerの設定ファイルを準備した上で、 Github Codespacesを立ち上げます。 構築レシピ📖
Dockerfile🐋 • Codespaces立ち上げ時に、CDKとecspressoの環境構 築
• AWS CDK + ecspressoの構成ファイルを用意します。 • devcontainerの設定ファイルを準備した上で、 Github Codespacesを立ち上げます。 ➔
Github Codespaces上でクレデンシャルを設定しま す。 • cdk deploy と ecspresso deploy を実行すれば完成! 構築レシピ📖
• AWS CDK + ecspressoの構成ファイルを用意します。 • devcontainerの設定ファイルを準備した上で、 Github Codespacesを立ち上げます。 ➔
Github Codespaces上でクレデンシャルを設定しま す。 事前に設定済! 構築レシピ📖
本日Demoするのは...🍽 • AWS CDK + ecspressoの構成ファイルを用意します。 • devcontainerの設定ファイルを準備した上で、 Github Codespacesを立ち上げます。
• Github Codespaces上でクレデンシャルを設定しま す。 ➔ cdk deploy と ecspresso deploy を実行すれば完成! Github Codespacesの立ち上げ後、3コマンドで構築 完了 cdk deploy CdkEcspressoStack cd ecspresso ecspresso deploy
Demo内容
• Code > Codespaces > 準備したコンテナを選択 Github Codespacesの立ち上げ
cdk deploy(確認で'y'を選択しEnter)
cdk deploy(デプロイ中)
cdk deploy(デプロイ完了)
cdk deploy(CloudFormation上で結果を確認) ※ SSMパラメータ数が多いと、案外リソース数も多くなるので注意
ecspresso deploy(デプロイ完了) ※ ecs-task-def.jsonでdesiredCount:1としているので、タスクが1 台起動
ecspresso deploy(デプロイ完了) ※ ALBのDNS名:8080でnginxコンテナへアクセス
• 実行コマンドを逆順に実行していくのみ • まず、ECSタスク`nginx`の停止(マネコン上) • 次に、ecspresso deleteの実行 • 最後に、cdk destroy
CdkEcspressoStackの実行 おまけ:片付け手順
• Githubでサンプルコードを公開しています。 • 今回のデモと同様の手順を試せる状態となっています ので、宜しければお試しください! https://github.com/yoyoyo-pg/cdk-ecspresso おまけ:サンプルコード
• AWS CDKでクラウドアプリケーションを開発するため のベストプラクティス - Amazon Web Services ブログ https://aws.amazon.com/jp/blogs/news/best-prac
tices-for-developing-cloud-applications-with-aws- cdk/ • ecspresso handbook v2対応版 - Zenn https://zenn.dev/fujiwara/books/ecspresso-handb ook-v2 参考文献
More Decks by akita
See All by akita
CDKを活用した 大規模コンテナ移行 プロジェクトの紹介
yoyoyopg
0
540
AWSやJAWS-UGとの出会いを振り返る
yoyoyopg
1
460
AWS Control Tower で マルチアカウント運用を試した話
yoyoyopg
0
97
Other Decks in Technology
See All in Technology
ラクスル会社紹介資料|エンジニア向け / RAKSUL Introduction for Engineers
raksulrecruiting
0
110
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
17
120k
「任されビリティ」で引き受けて「よしなりてぃ」に頼らず任せる / Accept tasks with "makasarebility" and hand them over without relying on "yoshinarily"
pauli
0
590
Reticulum, le réseau cypherpunk dont vous avez besoin !
rlifchitz
0
140
LLM 基盤と kagent v0 を全部 k8s に入れてみた / Deploy both LLM and kagent v0 in k8s
kota2and3kan
0
220
AI対話型分析を作成し、リリースするまでの話 / The Road to Release: Buiding AI Conversational Analytics
yappli_developers
0
140
常時稼働エージェントの作り方(Claude公式ブログを資料化)
minorun365
PRO
7
14k
Kiro アップデート 2026 年 11 月号 (11 月 8 日時点) | 目指せ Kiro マスター アップデート編
inariku
PRO
2
130
Where Should Platform Complexity Live? Lessons from a Cross-Team PR Preview Platform
taiki45
0
110
Kiro IDE 入門 (画面の各部から、頼み方、任せ方、戻し方まで) | 目指せ Kiro マスター 02
inariku
PRO
4
250
BALLAS Technology Deck
ballas_inc
0
620
Claude Securityを使ってみた / claude-security-claude-code-meetup-nagoya
tnir
0
110
Featured
See All Featured
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
770
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
280
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
Darren the Foodie - Storyboard
khoart
PRO
5
4.1k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.7k
Discover your Explorer Soul
emna__ayadi
2
1.3k
We Have a Design System, Now What?
morganepeng
55
8.4k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
1
240
Become a Pro
speakerdeck
PRO
31
6.4k