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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
akita
May 28, 2023
Technology
1.2k
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
More Decks by akita
See All by akita
CDKを活用した 大規模コンテナ移行 プロジェクトの紹介
yoyoyopg
0
520
AWSやJAWS-UGとの出会いを振り返る
yoyoyopg
1
430
AWS Control Tower で マルチアカウント運用を試した話
yoyoyopg
0
96
Other Decks in Technology
See All in Technology
まちスペース®とデジタルツインと「まちづくり」
hiro_ogi
0
120
侵入は突然に 〜 IoTマルウェアと悪用される家庭の機器 ~ / When Intrusion Strikes: IoT Malware and the Abuse of Home Devices
nttcom
0
5.6k
Webアクセシビリティ入門 2026
recruitengineers
PRO
3
570
【CEDEC2026】『ウマ娘 プリティーダービー』 英語版のキャラクターの方言や口調をローカライズするための創造的アプローチ
cygames
PRO
2
950
Digitization部 紹介資料
sansan33
PRO
2
7.7k
オートロックマンションなのに、各部屋は施錠なし!? 攻撃者が組織内ネットワークで大暴れする理由 / The Front Door Is Locked, but the Rooms Are Wide Open: Why Attackers Move Freely Inside Enterprise Networks
nttcom
1
5.7k
老害フォレンジッカーはAI羊の夢を見るか?
tadmaddad
0
330
Flutterをカメラで動かしたかった話
sony
1
140
LLM・AIエージェントシステムベストプラクティス
shibuiwilliam
6
1.3k
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
Bits Agent Builder の⼊⾨と活⽤事例
nulabinc
PRO
0
140
Head First モブプログラミング / Head First Mobprogramming
takaking22
10
12k
Featured
See All Featured
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
700
Everyday Curiosity
cassininazir
0
280
[SF Ruby Conf 2025] Rails X
palkan
2
1.3k
How to Think Like a Performance Engineer
csswizardry
28
2.7k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.7k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
390
Music & Morning Musume
bryan
47
7.3k
A better future with KSS
kneath
240
18k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
470
Game over? The fight for quality and originality in the time of robots
wayneb77
1
240
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
490
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
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 参考文献