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
Lambda Layerを作る時に沼った話
Search
ヤマダ(北野)
December 13, 2023
Technology
33
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Lambda Layerを作る時に沼った話
ヤマダ(北野)
December 13, 2023
More Decks by ヤマダ(北野)
See All by ヤマダ(北野)
AWS Step Functions でプロンプト自動育成ワークフローを構築してみた
yamada_r
0
36
Claude 4.5 と SFnで作る 「京都語本音デコーダー」
yamada_r
0
27
CBs 2年生になれたら
yamada_r
0
86
「Kiroってどうなの?」 リアルな使い勝手と最新の料金ガイド
yamada_r
0
140
まずはマネコンでちゃちゃっと作ってから、それをCDKにしてみよか。
yamada_r
3
350
カップラーメンタイマーで感じる生成AIの進化
yamada_r
0
33
Amazon Lexに感じる無限の可能性
yamada_r
0
73
JAWS DAYS 2025 re:Chrees 広報担当の振り返り
yamada_r
0
230
それ、AWS Step Functionsで置き換えれん?
yamada_r
0
45
Other Decks in Technology
See All in Technology
地震情報アプリを作ってみた
yama3133
1
110
Model Studio CLI × Token Plan
maigo999
0
210
Adding Right-to-Left support to your web application with CSS logical properties — Lessons from Redmine
vividtone
0
170
Kiro Crew で始める マルチエージェント開発
miu_crescent
PRO
0
170
なぜ Temporal の大小比較には compare しかないのか / Why Does Temporal Only Have compare() for Comparisons
kazukihayase
1
200
【GCC2026】大規模言語モデルを活用した内製検索サービスの社内展開や業務活用
bandainamcostudios
PRO
0
520
ホームラボ紹介
y_sera15
0
230
DDDのエッセンスを取り入れたAIでの開発
ak2ie
1
210
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
12
85k
LLM・AIエージェントシステムベストプラクティス
shibuiwilliam
6
1.6k
Head First モブプログラミング / Head First Mobprogramming
takaking22
10
12k
2026-08-15 JAWS-UG 茨城 #16 Secrets ManagerにおけるSecret値の管理(Terraformの場合) / Secrets Manager Secrets
masasuzu
0
560
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
470
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
660
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
380
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
390
So, you think you're a good person
axbom
PRO
2
2.1k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
66
57k
Test your architecture with Archunit
thirion
2
2.4k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
430
The Curious Case for Waylosing
cassininazir
1
480
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
310
Transcript
ヤマダ(北野 涼平) Lambda Layerを作るときに沼った話 2023/11/16 アイレット株式会社 クラウドインテグレーション事業部 開発第1セクション
自己紹介 2 所属:アイレット株式会社 X:@benkyo_ganbaman 趣味:ハーゲンダッツの蓋集め 好きなAWSサービス:AWS FIS、AWS Lambda ヤマダ(北野 涼平)
3 本題
とある日のこと 4 ざっくりとこんな感じ • Python3.11 • 追加内容は軽微 • ↑の修正に伴い、Lambda Layerにもライブラリの追加が必要
• Lambda Layerを生成するフローが確立されている(Qiitaにある記事を参考にしていた) ◦ https://qiita.com/hoto17296/items/a374efc2d8159d75bc71 ◦ amazonlinuxにPythonをインストールしてレイヤーを作成している 既存案件の追加開発を行うことに
とある日のこと 5 追加内容が簡単だったこともあり、パパパッと実装を終えました。 そしていざデプロイしてみると... 意気揚々と作業を進める
とある日のこと 6 このエラー、調べると記事がたくさん出てきます。 私は検索結果から何件かの記事を確認しました。するとそれらの記事はおおよそ同じことを書 いていて「Lambdaが動く環境と同じ環境でLayerを作成する必要がある」と言います。 いくつかの記事では「PythonのVersionを合わせること」や「AmazonLinuxで作成しようね」 と多少ばらつきはありましたが、その辺りがよくないということが分かりました! 「よーし、とりあえず記事にあったCloud9で作ってみるのを試してみよう!」 →ここから泥沼が始まります。 やけに長いエラーをググってみる
7 沼①:Cloud9での成功
沼①:Cloud9での成功 8 コードを記述、実行、デバッグできるクラウドベースの統合開発環境 (IDE)です。 言わずもがなですが、AmazonLinux環境なのでPythonさえインストールできれば勝ち確。これ も非常に細かく説明してくれている記事があったので特に詰まることもなく環境構築に成功。 少しドキドキしながら作成したLambdaLayerをアップロードしてみます。 実行成功! 今まで失敗していた環境もAmazonLinuxで、Pythonのバージョンも合っている。 Cloud9について
9 沼②:CDKでの成功
沼②:CDKでの成功 10 プログラミング言語の優れた表現力を活かして、信頼性が高く、スケーラブルで、コスト効率 の高いアプリケーションをクラウドで構築できます。今回の構成をそれなりに踏襲したプロジ ェクトを作成し、デプロイしてみました。 特に問題なくデプロイ完了。 そして実行成功! どんどん謎が深まります。 CDKについて
11 沼③:Mac知識の欠落
沼③:Mac知識の欠落 12 この沼の時期に働いている環境が変わって、業務で使用しているPCがMacになりました。 元々ゴリゴリのWindows派で、家に3台あるPCも全てWin11。Windowsならショートカットも バリバリでしたが、Macは初めてで何をするにも分からず調べまくりの毎日です。 未だに右クリックがないことにも慣れていない私では、とある大事な事に気が回るはずもなく ... 業務で使用しているPC
13 そう、CPUアーキテクチャです!
エラーの原因 14 このエラー、環境面のズレのいろんな原因で発生します。もちろんCPUも然りです。 元々構築されていたAWS Lambdaのアーキテクチャは「x86_64」でした。前任者のPCもMac でしたが、M1以前のCPUを積んでいたため、Dockerファイルで記述がない場合は実行してい るPCに依存するので自動的に「x86_64」に。私のPCはM2だったので同じフローに則ると「 arm64」に。 非常にシンプルなミス ここで指定しないと
実行PCに依存する。
15 沼を振り返ってみます。
沼①:Cloud9での成功 16 コードを記述、実行、デバッグできるクラウドベースの統合開発環境 (IDE)です。 言わずもがなですが、AmazonLinux環境なのでPythonさえインストールできれば勝ち確。これ も非常に細かく説明してくれている記事があったので特に詰まることもなく環境構築に成功。 少しドキドキしながら作成したLambdaLayerをアップロードしてみます。 実行成功! 今まで失敗していた環境もAmazonLinuxで、Pythonのバージョンも合っている。 Cloud9について
Cloud9のCPUは? Cloud9はEC2インスタンス上で動いています。 環境を起動するときに自分でインスタンスを選択しているはずです。私は今回の環 境を作成する際に「t2micro」を選択しました。 t2microはgraviton系ではないので「x86_64」となります。 今回のAWS Lambdaと一致しているため、エラーは発生しません。
沼②:CDKでの成功 17 プログラミング言語の優れた表現力を活かして、信頼性が高く、スケーラブルで、コスト効率 の高いアプリケーションをクラウドで構築できます。今回の構成をそれなりに踏襲したプロジ ェクトを作成し、デプロイしてみました。 特に問題なくデプロイ完了。 そして実行成功! どんどん謎が深まります。 CDKについて CDKのCPUは?
これに関しては全然知りませんでしたが、ドキュメントを見てみるとデフォルトで 「x86_64」にしてくれるようです。 つまり、特に指定がなければよしなに「x86_64」にしてくれているということです ね。これであれば実行するPCに依存しません。CDKではDocker buildxを使用してく れているそうです。 もちろん、AWS Lambdaと一致しているため、エラーは発生しません。
沼③:Mac知識の欠落 18 この沼の時期に働いている環境が変わって、業務で使用しているPCがMacになりました。 元々ゴリゴリのWindows派で、家に3台あるPCも全てWin11。Windowsならショートカットも バリバリでしたが、Macは初めてで何をするにも分からず調べまくりの毎日です。 未だに右クリックがないことにも慣れていない私では、とある大事な事に気が回るはずもなく ... 業務で使用しているPC 業務で使用しているPCは? Macを使用しています。また、かなり新しい綺麗なPCを持たせていただいているの
で、M2が搭載されています。 M2では「arm64」が採用されています。 Lambda Layerを作成した環境は「arm64」 実行するAWS Lambdaは「x86_64」 これが、エラー発生した原因です。
19 まとめ
まとめ 20 一番大きかったのは、私のMac知識の無さだと思います。前任者もMacを使っているという情 報のみで同じCPUアーキテクチャだろうと思って初めから疑いませんでした。 また、Cloud9やCDKやその他諸々を試して軒並み成功していたのでどんどん原因が分からなく なってしまいました。 再現性のある手順で開発フローを確立しておくことはとても大切です。後任の方が資料を見る だけで引き継ぎができる状態がベストだと思います。そのためには環境面でのブレをなくすた めにライブラリのバージョンやCPUアーキテクチャもしっかりと記述しておくということを再 認識できました。
沼った原因について
21 学び
22 CPUはもっと早く疑おう!
23 ご清聴ありがとうございました