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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
PharmaX(旧YOJO Technologies)開発チーム
August 24, 2022
Technology
110
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アプリケーション評価駆動開発の歩き方
pharma_x_tech
3
860
LLMアプリケーションやAIエージェントの評価の基本
pharma_x_tech
1
660
「動くだけ」で終わらせない ― LLMアプリを継続的に改善・運用するための評価駆動開発
pharma_x_tech
2
64
LangSmithによるAIエージェントの継続的改善のためのオブザーバビリティの向上
pharma_x_tech
1
370
PdMによるLiveバイブコーディング〜プロトタイプ開発実践〜
pharma_x_tech
1
99
2025.10.28_CodexとClaude Codeの比較検討 社内座談会
pharma_x_tech
2
690
LLMのアウトプットの評価と改善 〜DSPyによるプロンプト最適化入門によせて〜
pharma_x_tech
6
1.3k
2025.09.02_AIコーディングを利用した開発自動化を目指しての座談会
pharma_x_tech
5
390
AIコーディングを前提にした開発プロセス再設計〜開発生産性向上に向けた試行錯誤〜
pharma_x_tech
4
480
Other Decks in Technology
See All in Technology
実践! SRE × AI - ABEMA における AIOps -
tetsuya28
8
3.1k
Benchmarking Disaggregated Serving on vLLM + Dynamo with a Real Coding-Agent Workload
nttcom
1
190
Gemini Intelligence 入門 ― AppFunctions と Gemini Nano
takuroabe
0
250
Rust で関数型ドメインモデリング
takonda
0
140
JAWSUG TOHOKU 青森支部 「LoGoチャット」のAWS移行で 乗り越えたこと
taketakekaho
0
330
ソフトウェア ファクトリー - 再現性のあるソフトウェアの工場づくり / Software factory
iktakahiro
6
4.9k
M5Stackで作る BLEマウス GPSログの世界
tomokusaba
0
420
Tofu-Controller lightning talk @ Containerday 2026
gionn
0
110
TinyGoでオブザーバビリティ?OpenTelemetryはTinyGoで使えるのか / Is OpenTelemetry available in TinyGo environment?
ymotongpoo
2
140
スキマバイトという雇用形態は存在しないので、雇用期間1日のアルバイト契約を事業者とワーカーが結ぶ手続きを支えるのがタイミーなんです
akitoshiga
0
200
Webの常識が通じないHTMLメールのダークモード
teamlab
PRO
0
120
大型犬好きによるPugの紹介
yamanoku
1
160
Featured
See All Featured
How to Talk to Developers About Accessibility
jct
2
580
Raft: Consensus for Rubyists
vanstee
142
7.8k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.4k
Into the Great Unknown - MozCon
thekraken
41
2.8k
The Invisible Side of Design
smashingmag
301
52k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
How to make the Groovebox
asonas
2
2.5k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
950
New Earth Scene 8
popppiees
4
2.7k
Deep Space Network (abreviated)
tonyrice
0
370
Designing Experiences People Love
moore
143
24k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
450
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 に指定 質疑応答