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
Lambda Layerを作る時に沼った話
Search
ヤマダ(北野)
December 13, 2023
Technology
34
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
38
Claude 4.5 と SFnで作る 「京都語本音デコーダー」
yamada_r
0
31
CBs 2年生になれたら
yamada_r
0
88
「Kiroってどうなの?」 リアルな使い勝手と最新の料金ガイド
yamada_r
0
150
まずはマネコンでちゃちゃっと作ってから、それをCDKにしてみよか。
yamada_r
3
360
カップラーメンタイマーで感じる生成AIの進化
yamada_r
0
35
Amazon Lexに感じる無限の可能性
yamada_r
0
73
JAWS DAYS 2025 re:Chrees 広報担当の振り返り
yamada_r
0
230
それ、AWS Step Functionsで置き換えれん?
yamada_r
0
49
Other Decks in Technology
See All in Technology
20260912_スクラムにジェネラリストは必要か
ryugen04
0
400
2026_devsumi_ozono.pdf
o3
3
470
Genieを崇めよ
kameitomohiro
0
110
空間オーディオで過去の 自分(ゴースト)と競うランニング 〜HealthKitのルートを足音に変える実装〜
nao_randd
0
110
iOSDC Japan 2026 day1 TrackC 10:50
feedtailor
0
110
AI 時代のスタートアップエコシステ厶から考究する技術的負債との向き合い方
m3m0r7
PRO
2
1.3k
人間はどの意思決定を手放せるのか
kawasima
12
5.1k
【技術的負債conf】事業成長に伴う技術的負債の説明責任とAIによるモニタリング、認知的負債について
i35_267
1
610
Microsoft 365 Copilot chat -tekoälypalvelun tietosuojaongelmat
hponka
0
860
多層防御と最⼩権限で実現する、安全なAIエージェント設計パターン
lycorptech_jp
PRO
1
290
WAF 運用改善の承認サイクル/SRE_BizReach_MIXI_1
visional_engineering_and_design
2
640
Deploying a Full-Stack Bun-Native Framework on Cloudflare Workers
7nohe
0
160
Featured
See All Featured
So, you think you're a good person
axbom
PRO
2
2.2k
Darren the Foodie - Storyboard
khoart
PRO
3
3.9k
Designing for Timeless Needs
cassininazir
1
470
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
67
58k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
480
Product Roadmaps are Hard
iamctodd
55
13k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Building AI with AI
inesmontani
PRO
1
1.2k
Crafting Experiences
bethany
1
330
A Tale of Four Properties
chriscoyier
163
24k
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 ご清聴ありがとうございました