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
AWS Copilotを CDKでカスタマイズする
Search
takahash
May 20, 2023
Technology
4.3k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS Copilotを CDKでカスタマイズする
takahash
May 20, 2023
More Decks by takahash
See All by takahash
ECS Managed Instanceをキャッチアップしよう!
_takahash
4
910
MITRE ATT&CK入門~攻撃者はAWSの侵害をどう進めるのか~
_takahash
1
350
コンテナでLambdaをデプロイするときに知っておきたかったこと
_takahash
2
970
EKS Auto ModeではじめるEKS / lets-start-eks-auto-mode
_takahash
1
1.1k
Seekable OCI (SOCI) によるコンテナ起動の高速化
_takahash
4
1.2k
Other Decks in Technology
See All in Technology
(swiftc) NonCopyableとライフタイム修飾子
teamhimeh
0
170
PostgreSQL オプティマイザ統計の秘密
nori_shinoda
0
310
Copilot Coworkで「みのるん式」やってみた
minorun365
PRO
2
1.5k
Strands Decider 2BでAWSアップデートの目利きをしてみた
sato4mi
1
100
Autonomous AI Lakehouse - Live AI Hubから始めるセキュアなAIデータ活用 -
oracle4engineer
PRO
3
190
2026 Apache Flink Community Checkpoint
rmetzger
0
150
【dbts2026】AIエージェントの 判断と探索を変える、 データベース エンジニアリング― 既存DBの処理と依存関係から作る、オペレーショナルオントロジー ―
shisyu_gaku
0
100
Oracle Database Security 詳細解説
oracle4engineer
PRO
1
250
新卒エンジニア、 介護士になる
ryu1013
1
680
AX時代の自治体支援リソース再配分と役割分担の再構成:戦略とロードマップ(概要)
sishi2026
0
190
You Have Agency(サンキュー、Ruby)
snoozer05
PRO
5
670
続・ソフトウェアアーキテクトのための意思決定術: Decision Readiness, Revisited — When AI Changes the Economics of Software Architecture
snoozer05
PRO
5
1.3k
Featured
See All Featured
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
590
My Coaching Mixtape
mlcsv
0
380
First, design no harm
axbom
PRO
2
1.4k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.9k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
Designing for Timeless Needs
cassininazir
1
550
Deep Space Network (abreviated)
tonyrice
0
410
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.5k
So, you think you're a good person
axbom
PRO
2
2.2k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2.1k
Transcript
AWS Copilotを CDKでカスタマイズする AWS CDK Conference Japan 2023 @_takahash 1
自己紹介 • takahash (@_takahash) • CoEのテックリード • 社内AWS基盤の運用 • ガイドライン整備
• Like • AWS CDK, AWS CLI 2
Agenda • AWS Copilotについて • AWS CopilotのCDK Overridesについて • まとめ
想定聴衆: AWS Copilotは触ったことないけど、 CDKはある人 3
AWS Copilotについて 4
AWS Copilotとは • コマンドラインからコンテナ環境や CI/CDパイプライン等を対話形式 で容易に作成可能 • 次スライド以降に利用イメージ • マニフェスト(manifest.yml)に
よる宣言的なアーキテクチャの定義 が可能 AWS App Runnerまたは Amazon ECS on AWS Fargate上の コンテナアプリケーションのビルド、リリース、運用のためのCLIツール 注: Amazon ECSはAmazon Elastic Container Serviceの略称です 5 AWS Copilot
copilot app init # アプリケーションの作成 $ copilot app init [--domain
example.com] # アプリケーション名を指定 Application: app 6
copilot env [init|deploy] --name dev # dev環境の作成 $ copilot env
init –-name dev # 利用するAWS Profileを指定 # VPCの構成を指定 # - デフォルト構成 # - カスタマイズ # - 既存VPCのインポート # dev環境のデプロイ $ copilot env deploy --name dev Application: app Environment: dev VPC(Virtual Private Cloud) 7
copilot svc [init|deploy] --name frontend # frontendサービスの作成 $ copilot svc
init --name frontend # サービスタイプの指定 # - Request-Driven Web Services (App Runner) # - Load Balanced Web Service (ECS/Fargate) # - Backend Service (ECS/Fargate) # - Worker Service (SQS + ECS/Fargate) # Dockerfileの指定 # - ローカル # - カスタムパス # - 既存イメージの利用 # frontendサービスのデプロイ $ copilot svc deploy --name frontend Application: app Environment: dev VPC Cluster Service: frontend Amazon ECR 8
copilot svc [init|deploy] --name backend # backendサービス作成 $ copilot svc
init --name backend #(割愛) # ストレージの作成 $ copilot storage init –t DynamoDB --name ddb # Storageにアクセスするサービスの指定 # Storageをサービス削除時に削除するか指定 # PartitionKeyの指定 # SortKeyの指定 # backendサービスのデプロイ $ copilot svc deploy --name backend Application: app Environment: dev VPC Cluster Service: frontend Amazon ECR Service: backend Amazon ECR Amazon DynamoDB 注: Amazon ECRはAmazon Elastic Container Registryの略称です 9
copilot env [init/deploy] --name prod # prod環境の作成 $ copilot env
init –-name prod # frontendサービスのデプロイ $ copilot svc deploy --name frontend –-env prod # backendサービスのデプロイ $ copilot svc deploy --name backend --env prod Application: app Environment: dev VPC Cluster Service: frontend Amazon ECR Service: backend Amazon ECR Environment: prod Amazon DynamoDB 10
AWS Copilotの CDK Overridesについて 11
CDK Overridesとは • AWS Copilot v1.27でリリース(2023/3/28) • AWS Copilotによって生成されたCFnテンプレートの任意のプロパティを AWS
CDKで変更できるようになった • これまでユーザはAWS Copilotのマニフェストを編集することで、生成されるCFn テンプレートの内容をある程度は変更できたが手が届かないところもあった • 例えば、Copilotが作成したNLBに独自に作成したEIPを紐づけるようなことは難しかった • env/svc/jobリソースに対応(v1.27現在) AWS Copilotがデプロイするリソースとプロパティをカスタマイズする 12 AWS Cloud Development Kit (AWS CDK)
# オーバライド用CDKアプリケーションの生成 $ copilot svc override –n frontend –tool cdk
# CDK Stackの編集 $ vi frontend/overrides/stack.ts # 差分を確認 $ copilot svc [deploy|package] --diff # デプロイまたはCFnテンプレートの出力 $ copilot svc [deploy|package] TypeScriptのみ対応(2023/5現在) 利用イメージ 13
stack.ts (1/2) L18-20: cloudformation-includeモジュールで Copilotが生成したCFnテンプレート を読み込み CFnテンプレートは copilot svc [deploy|package]のたびに生成
L23: オーバーライド処理の実行 (定義は次スライドへ) 14
stack.ts (2/2) L31: 独自リソースの定義 L36: 既存プロパティの削除 L37-43: プロパティの追加 15
まとめ/所感 16
まとめ/所感 • CDK OverridesによってAWS Copilotのより柔軟なカスタマイズが可能 になった • 一方でカスタマイズが多くなるとCopilotが管理するmanifest.ymlとの 乖離が大きくなりどこで何が設定されているか見通しが悪くなるので注意 •
特にチームで開発を行う場合はstack.tsの記述は最小限に抑えるなどの決めごと は必要か • 今後も他のツールとCDKの連携が広がることに期待 ❤ 17