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
770
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
390
AWSやJAWS-UGとの出会いを振り返る
yoyoyopg
1
350
AWS Control Tower で マルチアカウント運用を試した話
yoyoyopg
0
53
Other Decks in Technology
See All in Technology
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
320
新機能VPCリソースエンドポイント機能検証から得られた考察
duelist2020jp
0
220
WACATE2024冬セッション資料(ユーザビリティ)
scarletplover
0
200
サイバー攻撃を想定したセキュリティガイドライン 策定とASM及びCNAPPの活用方法
syoshie
3
1.3k
日本版とグローバル版のモバイルアプリ統合の開発の裏側と今後の展望
miichan
1
130
Microsoft Azure全冠になってみた ~アレを使い倒した者が試験を制す!?~/Obtained all Microsoft Azure certifications Those who use "that" to the full will win the exam! ?
yuj1osm
2
110
ブラックフライデーで購入したPixel9で、Gemini Nanoを動かしてみた
marchin1989
1
540
[Ruby] Develop a Morse Code Learning Gem & Beep from Strings
oguressive
1
160
コンテナセキュリティのためのLandlock入門
nullpo_head
2
320
Google Cloud で始める Cloud Run 〜AWSとの比較と実例デモで解説〜
risatube
PRO
0
100
.NET 9 のパフォーマンス改善
nenonaninu
0
930
非機能品質を作り込むための実践アーキテクチャ
knih
5
1.4k
Featured
See All Featured
Docker and Python
trallard
42
3.1k
Practical Orchestrator
shlominoach
186
10k
How to Ace a Technical Interview
jacobian
276
23k
Mobile First: as difficult as doing things right
swwweet
222
9k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.2k
Adopting Sorbet at Scale
ufuk
73
9.1k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
RailsConf 2023
tenderlove
29
940
How to train your dragon (web standard)
notwaldorf
88
5.7k
GitHub's CSS Performance
jonrohan
1030
460k
A Philosophy of Restraint
colly
203
16k
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 参考文献