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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
ヤマダ(北野)
December 13, 2023
Technology
30
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
16
Claude 4.5 と SFnで作る 「京都語本音デコーダー」
yamada_r
0
22
CBs 2年生になれたら
yamada_r
0
67
「Kiroってどうなの?」 リアルな使い勝手と最新の料金ガイド
yamada_r
0
120
まずはマネコンでちゃちゃっと作ってから、それをCDKにしてみよか。
yamada_r
3
340
カップラーメンタイマーで感じる生成AIの進化
yamada_r
0
29
Amazon Lexに感じる無限の可能性
yamada_r
0
68
JAWS DAYS 2025 re:Chrees 広報担当の振り返り
yamada_r
0
210
それ、AWS Step Functionsで置き換えれん?
yamada_r
0
40
Other Decks in Technology
See All in Technology
ループエンジニアリングでE2Eテストを実践
noriyukitakei
0
270
背中から、背中へ /paying forward to community
naitosatoshi
0
220
AWS Summit 2026で見えたSIerにとっての Amazon Quickの位置づけ
maf_0521
0
160
AI駆動開発におけるQAエンジニアの役割事例 〜AI駆動開発の現場から〜
kobayashiyorimitsu
0
300
記録をかんたんに、提案をパーソナルに ── AIであすけんが目指すもの
oprstchn
0
140
CSに"SLO"は要らない、経営層に"99.9%"は伝わらない - SREを全社に"翻訳"する3原則
cscengineer
PRO
0
1.2k
cccccc
moznion
0
1.7k
“全部コピーしない”ファイルデータの活用 : — FSx for ONTAP × S3 Tables × Icebergで作るメタデータカタログ
yoshiki0705
0
430
product engineering with qa
nealle
0
140
GuardrailからGovernanceへ~AIエージェント運用の次の課題~
sbspsy
1
120
小さいから、全部わかる。— 常駐AI "xangi" のすすめ
sugupoko
0
260
Baseline対応のDOMの型定義を作った
uhyo
3
680
Featured
See All Featured
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Into the Great Unknown - MozCon
thekraken
41
2.6k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
380
WENDY [Excerpt]
tessaabrams
11
38k
How to Ace a Technical Interview
jacobian
281
24k
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
380
Accessibility Awareness
sabderemane
1
150
Automating Front-end Workflow
addyosmani
1370
210k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
340
Building the Perfect Custom Keyboard
takai
2
810
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 ご清聴ありがとうございました