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でインフラとコードを 一緒にデプロイしてみよう
Search
regent0ro
February 09, 2022
Technology
820
0
Share
CDKでインフラとコードを 一緒にデプロイしてみよう
CDKで簡単なLambdaをデプロイした紹介です。
regent0ro
February 09, 2022
More Decks by regent0ro
See All by regent0ro
AWS Lambda durable functions
regent0ro
0
110
くだらないけど、いつか役にたつかもAWS雑学QUIZ
regent0ro
0
9
Other Decks in Technology
See All in Technology
大学職員のための生成AI最前線 :最前線を、AIガバナンスとして読み直すためのTips
gmoriki
1
2.9k
はじめての MagicPod生成AI機能 機能紹介から活用方法まで
magicpod
0
130
20260428_Product Management Summit_Loglass_JoeHirose
loglassjoe
4
6.5k
ServiceNow Knowledge 26 の歩き方
manarobot
0
300
AI時代の品質はテストプロセスの作り直し #scrumniigata
kyonmm
PRO
4
1k
Forget technical debt
ufried
0
150
Chasing Real-Time Observability for CRuby
whitegreen
0
710
エージェント時代の UIとAPI、CLI戦略
coincheck_recruit
0
110
Building Production-Ready Agents Microsoft Agent Framework
_mertmetin
0
140
AgentCore Managed Harness を使ってみよう
yakumo
2
300
GitHub Copilot Dev Days
tomokusaba
0
130
COBOL婆さんの伝説
poropinai1966
0
130
Featured
See All Featured
Designing for Timeless Needs
cassininazir
0
210
New Earth Scene 8
popppiees
3
2.2k
[SF Ruby Conf 2025] Rails X
palkan
2
1k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
170
Mind Mapping
helmedeiros
PRO
1
180
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
820
Building an army of robots
kneath
306
46k
4 Signs Your Business is Dying
shpigford
187
22k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.9k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
290
BBQ
matthewcrist
89
10k
Tell your own story through comics
letsgokoyo
1
910
Transcript
CDKでインフラとコードを 一緒にデプロイしてみよう CDKでLambdaをデプロイしてみた JAWS-UG 初心者支部#44 AWS Builders Online Series recap2
自己紹介 • 某企業の5年目AWSインフラエンジニア • AWS歴:4年(IaCやCI/CD周りを触っています) • 好きなAWSサービス:AWS CDK • JAWSのLT初参加・初心者です!
姜 禮林 かん いぇりむ @cot_piyo https://regent0ro.blogspot.com/
CDKでLambdaをデプロイしてみた
AWS CDKとは • AWS Cloud Development Kit(AWS クラウド開発キット) • 慣れたプログラミング言語でAWSリソースを定義できるフレームワーク
◦ プログラミング言語の知識と表現力を使用できる → If文やfor文が使える! ◦ エディターの補完が効く! • AWSのベストプラクティスがデフォルト値であるため、コード記述量が少なくなる • CDKコードはCloudFormationのテンプレートに変換されて、AWS環境にデプロイされる
CDKで Lambdaをデプロイしてみた
AWS Lambdaとは • サーバーレスでプログラムを実行できるサービス • インフラのプロビジョニング、管理が不要 ◦ 高い可用性(メンテナンス時間やダウンタイムなし) • リクエスト数に応じて自動スケールする
• リクエスト数&実行時間で課金
CDKでLambdaをデプロイしてみた
4Stepでデプロイ 1. CDKプロジェクトを生成する 2. LambdaをStackに定義する 3. Lambdaのコードを書く 4. Let's デプロイ!
CDKバージョン:2.10.0 利用言語:Python
1.CDKプロジェクトを生成する $ mkdir CDKLambda && cd CDKLambda // CDKプロジェクトを生成 $
cdk init --language python //仮想環境に入る $ . .venv/Scripts/activate //仮想環境に必要なモジュールをインストール $ pip install -r requirements.txt $ deactivate 仮想環境から抜けるときは Bashで実行
2.LambdaをStackに定義する from aws_cdk import ( Stack, aws_lambda as cdk_lambda )
from constructs import Construct class CdkLambdaStack(Stack): def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None: super().__init__(scope, construct_id, **kwargs) cdk_lambda.Function(self, "simple_lambda", runtime=cdk_lambda.Runtime.PYTHON_3_9, //Lambdaのランタイム //コードがある場所。S3バケットの指定やインラインで書くことも可能 code=cdk_lambda.Code.from_asset("resources"), handler="simple_lambda.lambda_handler" //ハンドラーを指定 ) cdk_lambda_stack.py
3.Lambdaのコードを書く import json def lambda_handler(event, context): print("Welcome beginner!!") return {
'statusCode': 200, 'body': json.dumps('Hello from Lambda!') } resources\simple_lambda.py
4.Let's デプロイ! // 作成されるスタックを確認 $ cdk ls // AWS CDKのコードからCloudformationのテンプレートを生成(cdk.outフォルダーの中に生成)
$ cdk synth // AWS環境でAWS CDKを利用するための初期構築を実施(AWS CDKを環境で初めて利用する時に必要) // ここで生成されたS3バケットにCloudformationテンプレートやLambdaのコードがアップロードされる $ cdk bootstrap $ cdk deploy 仮想環境(venv)に入っている状態で実行します
マネジメントコンソールで確認してみる Cloudformation
コードで定義してないが、Lambdaに必要なIAMロールが自動生成されている CDKの改善に利用される
Lambda
CDKでLambdaをデプロイできました!
AWS CDKでLambdaのコードをデプロイする時のいいところ • 本番環境により近い状態を表すことができる ◦ AWS環境のすべではここにある! • インフラとアプリケーションチームのそれぞれの変更がより可視化できる • インフラと同一のデプロイ方法で管理できる
• インフラとアプリケーションコードを同じ言語で書ける https://aws.amazon.com/jp/blogs/news/lambda-managed-by-cdk/ 参考
まとめ • AWS CDKを利用して、Lambdaのインフラ定義とコードをデプロイしました • AWS CDKでLambdaのコードを書くと、以下のメリットがある ◦ 本番環境により近い状態を表すことができる ◦
インフラとアプリケーションチームのそれぞれの変更がより可視化できる ◦ インフラと同一のデプロイ方法で管理できる ◦ インフラとアプリケーションコードを同じ言語で書ける • AWS CDKはいいよ!いいよ!
おまけ より便利に利用できるLambda関連ライブラリもあります • aws-lambda-nodejs • aws-lambda-go(Experimental) • aws-lambda-python(Experimental) • aws-lambda-event-source
• aws-lambda-destinations 関連するAWS Builders Online Seriesのセッション Track 2 「コードを使ったAWS運用のはじめかた」 AWS CDKのレファレンス:https://docs.aws.amazon.com/cdk/api/v2/docs/aws-construct-library.html
ご清聴ありがとうございました!