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_Lambdaのデプロイ手順
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
PharmaX(旧YOJO Technologies)開発チーム
August 24, 2022
Technology
100
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS_Lambdaのデプロイ手順
2022.06.30 LT会 古家さん発表資料
PharmaX(旧YOJO Technologies)開発チーム
August 24, 2022
More Decks by PharmaX(旧YOJO Technologies)開発チーム
See All by PharmaX(旧YOJO Technologies)開発チーム
LLMアプリケーションやAIエージェントの評価の基本
pharma_x_tech
1
370
「動くだけ」で終わらせない ― LLMアプリを継続的に改善・運用するための評価駆動開発
pharma_x_tech
2
30
LangSmithによるAIエージェントの継続的改善のためのオブザーバビリティの向上
pharma_x_tech
1
310
PdMによるLiveバイブコーディング〜プロトタイプ開発実践〜
pharma_x_tech
1
96
2025.10.28_CodexとClaude Codeの比較検討 社内座談会
pharma_x_tech
2
670
LLMのアウトプットの評価と改善 〜DSPyによるプロンプト最適化入門によせて〜
pharma_x_tech
6
1.3k
2025.09.02_AIコーディングを利用した開発自動化を目指しての座談会
pharma_x_tech
5
380
AIコーディングを前提にした開発プロセス再設計〜開発生産性向上に向けた試行錯誤〜
pharma_x_tech
4
470
AIエージェントの評価・改善サイクル
pharma_x_tech
2
670
Other Decks in Technology
See All in Technology
Where Is JetBrains AI Heading- — Central CLI, Air Alpha, and the Agentic Development Stack
x5gtrn
PRO
0
160
なぜSRE・セキュリティは評価されないのか?守りの組織を事業成長エンジンに変えた実践
cscengineer
PRO
3
2.5k
幾何アルゴリズムで なめらかなピン操作を / iOSDC Japan 2026 / smoothpin
kazumanagano
0
270
コスト最適化の「めんどくさい」を AWS FinOps Agent でチョット楽にする
classmethod_kaz
0
320
全員がプロダクトへ向き合う組織を持続成長させるために——組織づくりのフライホイールと4象限 / The Flywheel Model and Four Quadrants for Organizational Design
hiro_torii
4
980
安心して変更できるWebフロントエンドの作り方
pirosikick
4
1.4k
『止めない』を設計する — 制約の中で、事業の根幹を支える判断
hiroyaterui
0
270
データ界隈LT祭 第1回LT登壇
taromatsui_cccmkhd
0
120
#jawssonic2026 あの時代が悪かった ~動かなかったSageMakerと共に迎えたイベント当日~
ktkn1129
0
150
「図書館」という名前のままでいいのか -Code4Lib JAPANカンファレンス2026 アンカンファレンス報告- / Code4Lib JAPAN Conference 2026: Unconference Report
ykiyota
0
170
AIとペアプロを始める。人とのペアプロをやめる。ペアプロの良さを改めて知る。もっと好きになった。 / Rediscovering Pair Programming
honyanya
1
350
AIで実装は速くなった。なのにプロダクトは速くならない。職能の壁を越えて価値のフローを設計する
nwiizo
8
7.9k
Featured
See All Featured
Designing Experiences People Love
moore
143
24k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
4 Signs Your Business is Dying
shpigford
187
23k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
The Curious Case for Waylosing
cassininazir
1
500
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.9k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
540
[SF Ruby Conf 2025] Rails X
palkan
2
1.4k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.8k
Transcript
AWS Lambda のデプロイ⼿順 1 AWS Lambda のデプロイ⼿順 ⽤途 Line のWebhook
の受信をトリガーにALB の受け先としてLambda を利⽤ 責務はline からresponse 加⼯してSQS に詰めるだけ SQS+Lamba の構成で⼤量のリクエストを捌ける 短い実⾏タスクなら軽量なLambda でアプリケーションと責務を分けて可⽤性を⾼める 15 分以上かかるような⼤規模処理は向いていない。 他サービスとの連携が⽤意 ALB の特定のパスにアクセスあったらLambda を実⾏するみたいなことが⽤意 Fargate でこれやるなら、前段でLambda を挟む必要ある。
AWS Lambda のデプロイ⼿順 2 https://d1.awsstatic.com/webinars/jp/pdf/services/202107_AWS_Black_Belt_Container350-Container_and_Serverless.pdf AWS でバッチ処理を実装する際の選択肢とサービス⽐較 以前、 SaaS 系スタートアップのリアルなAWS
アーキテクチャ設計 という記事で弊社のAWS アーキテクチ ャを紹介した。記事執筆時から時が経ち、バッチ処理を本格化する必要が⽣じたためAWS でバッチ処理を 設計・実装しようとしたが、組み合わせが多くて辟易した。 ⾃分たちのサービスにあった⽅法を⾒つけよ https://zenn.dev/faycute/articles/fb310e3ccd783f デプロイ⽅法 AWS Lambda のデプロイはコンテナイメージと.zip ファイルアップロードの2 種類があります。 2020 年の12 ⽉にサポートされた。 .zip ファイルアーカイブで Ruby Lambda 関数をデプロイする AWS Lambda 関数のコードは、スクリプトまたはコンパイルされたプログラム、さらにそれらの依存関係で構成されます。 デプロイパッケージ を使⽤して、 Lambda に関数コードをデプロイします。Lambda は、コンテナイメージと .zip ファイルアーカイブの 2 種類のデプロイパッケージをサポートしています。 .zip ファイルのデプロイパッケージを作成するには、コマンドラインツール⽤の組み込み .zip ファイルアーカイブユーティリティまたは他の .zip ファイルユーティリ https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/ruby-package.html Docker の⽅が他とスキルが統⼀できてよいので、コンテナイメージでのデプロイにしました。 利⽤⾔語はメンバーが皆使えるであろうRuby を採択。 Lambda がサポートしているのが2 系なのでRuby2.7 ⼩さなプログラムでRuby3 の型をつける必要も無いので2 系で ディレクトリ構成 最低限、Line のWebhook を受け取ってログ出⼒するだけの構成になってます。 app.rb Dockerfile Gemfile https://github.com/yojo-technologies/pharmacy-dx-line-handler # アーキテクチャはLambda 側もARM64 に統ー FROM public.ecr.aws/lambda/ruby:2.7
AWS Lambda のデプロイ⼿順 3 COPY app.rb ${LAMBDA_TASK_ROOT} COPY Gemfile ${LAMBDA_TASK_ROOT}
ENV GEM_HOME=${LAMBDA_TASK_ROOT} RUN bundle install CMD [ "app.lambda_handler" ] ※ アーキテクチャをDocker イメージを合わせてます(arm64 ) Mac でDocker イメージをダウンロードするとマルチアーキテクチャでarm64 が選択される。 最初、us-west1 で作っていたらx86_64 のアーキテクチャでLambda 関数が動作するので、アーキテクチャが⼀致せずにエ ラーになった。 そのためus-west-1 以外のリージョンでアーキテクチャを指定して合わせた。 現状M1 以外の⼈がローカルでDocker デプロイするとエラーになるので後ほど、CI 化する。 デプロイ⼿順 ローカルマシンで、git clone https://github.com/yojo-technologies/pharmacy-dx-line-handler ローカルのDockerfile からスクリプトを含めたコンテナイメージを作成 docker build --no-cache -t pharmacy-chatbot-line-handler-dev . ローカルで起動する Lambda コンテナイメージをローカルでテストする https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/images-test.html AWS Lambda Runtime Interface Emulator (RIE) は、Lambda ランタイム API のプロキシでコンテナイメージとしてパッ ケージ化された Lambda 関数をローカルでテストできる json のパースエラーが出てローカルでエミュレーターは動かせなかった。現状はローカルテストはせずにそのままデプロイし て動作確認してる。 curl -XPOST "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{}' イメージを Amazon ECR コンテナレジストリにアップロード AWS CLI をインストール https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html AWS の認証情報を設定 aws configure にアクセスID とアクセスキーを設定 https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-quickstart.html Amazon ECR レジストリに対して Docker を認証 aws ecr get-login-password このコマンドは、AmazonECR レジストリへの認証に使⽤できるGetAuthorizationTokenAPI を使⽤して認証トー クンを取得して表⽰します。 Docker CLI など、好みのコンテナクライアントのログインコマンドに認証トークンを渡すことができます このコマンドでAmazonECR レジストリに認証された後、トークンの有効期限が切れるまでIAM プリンシパルがア クセスできる限り、 クライアントを使⽤してそのレジストリからイメージをプッシュおよびプルできます。認証トークンは12 時間有 効です。
AWS Lambda のデプロイ⼿順 4 docker login Docker Hub やGCR (Container
Registry ), ECR (Elastic Container Registry )などのコンテナレジストリにログ インするコマンドです。 ログインすることで、コンテナのpush やprivate レポジトリからのpull ができるようになります。 ECR に以下コマンドでログイン これでECR レジストリへ認証してプッシュできるようになる aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin 420547679007.dkr.ecr.ap-northeas ECR のリポジトリを作成 暗号化設定を有効化
AWS Lambda のデプロイ⼿順 5 プッシュコマンドの表⽰で表⽰されるコマンドに従ってイメージをアップロードする コンテナイメージを元に関数をデプロイ arm64 に指定 質疑応答