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
CDK + ecspressoでお手軽コンテナ3分クッキング
Search
akita
May 28, 2023
Technology
0
950
CDK + ecspressoでお手軽コンテナ3分クッキング
2023-05-29(月)AWS-UG名古屋 のLT資料です。
akita
May 28, 2023
Tweet
Share
More Decks by akita
See All by akita
CDKを活用した 大規模コンテナ移行 プロジェクトの紹介
yoyoyopg
0
470
AWSやJAWS-UGとの出会いを振り返る
yoyoyopg
1
390
AWS Control Tower で マルチアカウント運用を試した話
yoyoyopg
0
78
Other Decks in Technology
See All in Technology
MCPサーバーを活用したAWSコスト管理
arie0703
0
140
ABEMAにおける 生成AI活用の現在地 / The Current Status of Generative AI at ABEMA
dekatotoro
0
550
20250818_KGX・One Hokkaidoコラボイベント
tohgeyukihiro
0
130
結局QUICで通信は速くなるの?
kota_yata
9
7.5k
Backlog AI アシスタントが切り開く未来
vvatanabe
1
170
[CV勉強会@関東 CVPR2025 読み会] MegaSaM: Accurate, Fast, and Robust Structure and Motion from Casual Dynamic Videos (Li+, CVPR2025)
abemii
0
170
LLM 機能を支える Langfuse / ClickHouse のサーバレス化
yuu26
9
2.8k
サービスロボット最前線:ugoが挑むPhysical AI活用
kmatsuiugo
0
180
プロジェクトマネジメントは不確実性との対話だ
hisashiwatanabe
0
180
サイボウズフロントエンドの横断活動から考える AI時代にできること
mugi_uno
3
1.3k
Android Studio の 新しいAI機能を試してみよう / Try out the new AI features in Android Studio
yanzm
0
160
歴代のWeb Speed Hackathonの出題から考えるデグレしないパフォーマンス改善
shuta13
5
560
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.4k
Into the Great Unknown - MozCon
thekraken
40
2k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
890
Six Lessons from altMBA
skipperchong
28
4k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
110
20k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.4k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
GitHub's CSS Performance
jonrohan
1031
460k
Transcript
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 参考文献