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の設定値を今一度整理してみた
Search
hr0hr57
December 05, 2023
Technology
0
340
インフラ担当者がLambdaの設定値を今一度整理してみた
2023/12/6(水)の【AWS】AWS10分LT会 - vol.2での発表資料です。
https://aws-likers.connpass.com/event/301604/
hr0hr57
December 05, 2023
Tweet
Share
More Decks by hr0hr57
See All by hr0hr57
リソースのテレメトリも管理したい!〜CloudWatch Telemetry管理のご紹介〜
nnydtmg
0
190
宇宙最速のランチRecap LT会(開発者ツール&運用監視編)
nnydtmg
2
400
AWS All Certが伝える 新AWS認定試験取得のコツ (Machine Learning Engineer - Associate)
nnydtmg
1
920
AWS認定試験 DEA受験記
nnydtmg
1
600
金融系・JTCエンジニアこそコミュニティに行け!
nnydtmg
0
210
Terraform v1.6.0で始めるインフラ単体テスト
nnydtmg
2
1.3k
AWSでTerraform超入門
nnydtmg
1
270
祝初選出!! AWS Community Builderになるには
nnydtmg
0
820
Other Decks in Technology
See All in Technology
AWS のポリシー言語 Cedar を活用した高速かつスケーラブルな認可技術の探求 #phperkaigi / PHPerKaigi 2025
ytaka23
7
1.5k
ソフトウェアプロジェクトの成功率が上がらない原因-「社会価値を考える」ということ-
ytanaka5569
0
130
問題解決に役立つ数理工学
recruitengineers
PRO
7
2.1k
LINE Notify互換のボットを作った話
kenichirokimura
0
180
20250326_管理ツールの権限管理で改善したこと
sasata299
1
380
一人QA時代が終わり、 QAチームが立ち上がった話
ma_cho29
0
290
大規模サービスにおける カスケード障害
takumiogawa
1
130
Amazon EKS Auto ModeでKubernetesの運用をシンプルにする
sshota0809
0
110
17年のQA経験が導いたスクラムマスターへの道 / 17 Years in QA to Scrum Master
toma_sm
0
400
数百台のオンプレミスのサーバーをEKSに移行した話
yukiteraoka
0
680
Go製のマイグレーションツールの git-schemalex の紹介と運用方法
shinnosuke_kishida
1
410
お問い合わせ対応の改善取り組みとその進め方
masartz
1
370
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Java REST API Framework Comparison - PWX 2021
mraible
29
8.5k
Navigating Team Friction
lara
184
15k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.4k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
46
2.4k
Writing Fast Ruby
sferik
628
61k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
102
18k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
12
1.4k
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
Music & Morning Musume
bryan
46
6.4k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
177
52k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Transcript
インフラ担当者が Lambdaの設定値について 今⼀度整理してみた ryosaan 1
⾃⼰紹介 • ryosaan (@hr0hr57) • 某⾦融系SIerでインフラ設計‧構築を担当 • ⾦融のお客様向けのAWS基盤環境設計 • 所属コミュニティ
◦ AWS Community Builder(Cloud Operations) ◦ Ops-JAWS運営 ◦ CNDT2023運営 ◦ この他クラウド系コミュニティによく出没 • 2022-23 APN ALL AWS Certifications Engineers 2
Lambda使ってますか? • フルマネージドなサーバレスコンピューティングサービス • EC2等のコンピューティング環境のプロビジョニング不要で、 アプリケーションコードの実⾏が可能 • 複数ランタイムをサポート (2023/12/6 現在)
python(3.7~3.11)、Node.js(14.x~20.x)、Go(1.x)、Java(8~21)、Ruby(2.7,3.2)、.NET(6) Rustもプレビュー中 • ファイル処理でのS3やストリーミング処理でのKinesis等、AWSの各サービス との統合に便利 • サーバレスサービスのパイオニア 3
利⽤するきっかけ • 普段はインフラ基盤(VPC‧EC2‧RDS等)の設計構築を担当 • オンプレからのリフト環境のため、JP1のジョブを利⽤ • JP1ジョブでAWSのAPIを実⾏することで、S3インベントリ履歴からオブジェ クトの改ざんを検知する⽇次処理を⾏っていた • インベントリの量によってジョブのタイムアウトが発⽣
• 再実⾏によってジョブエラーは解消 • ⽇次処理ではなく逐次処理にすることで、運⽤負荷を減らしたい 4
設定値① ⼀般設定 • メモリ 関数に割り当てるメモリを指定する。関数の処理量に応じて変更。 課⾦計算対象。128 MB〜10,240 MB の値を 1 MB
単位で設定。 • タイムアウト 関数のタイムアウトを指定する。1秒〜15分の1秒単位で設定。 デフォルト3秒。 • エフェメラルストレージ /tmpディレクトリのサイズを指定する。ローカルで処理するファイルがある 場合に指定。512 MB から 10,240 MB の間で、1 MB 刻みで設定。 5
設定値② ⼀般設定 • 実⾏ロール Lambdaに付与するIAMロールを指定する。S3アクセスやCloudWatch等への 必要なIAM権限を付与する。 • 環境変数 Lambda関数内で参照する環境変数を設定する。Lambda内からはOSの環境 変数として利⽤可能。 AWSが予約済みの環境変数もあるため確認が必要。
6
設定値③ ⼀般設定 • VPCの設定 Lambdaの実⾏環境を特定のNWに制限したい場合は指定する。 VPC内のリソースへのアクセス時に必要。 7 Lambda Service VPC Customer
VPC Endpoint NAT Gateway
設定値④ ⼀般設定 • バージョン 公開バージョンを指定する。バージョンを利⽤することで、安定稼働中のリ ソースに影響を与えずにテストを⾏う事ができる。 • エイリアス エイリアスを指定することで、関数更新時にLambdaの呼び出し元での変更 が不要になる。バージョン更新時にLambda側でエイリアスと紐づけること で利⽤可能。
8
設定値⑤ ⼀般設定 • ファイルシステム Lambdaが実⾏時にマウントするストレージを指定する。Lambdaは揮発性 のストレージしか持たないため、永続的なファイルや共通のファイルを⼀元 的に保存しておくためのEFS等を指定しておく。 • トリガー Lambdaを実⾏するトリガーを指定する。API Gatewayの他、SQSや
EventBridge等が指定できる。 9
設定値⑥ ⼀般設定 • 同時実⾏ 同時に処理できる関数の数。 上限は同⼀アカウント同⼀リージョン内につき1000(上限緩和可能)。 同時実⾏数=1秒あたりの呼び出し数×平均実⾏時間(秒) ex)100リクエスト/秒の関数が平均10秒実⾏されると同時実⾏数は1000 ◦ 予約済み同時実⾏ 予約した同時実⾏数の範囲内の関数は正常に実⾏され、超過したものはスロットリングを⾏
いキューイングされ、実⾏可能になったら順不同に処理される ◦ プロビジョニング済み同時実⾏ 事前に実⾏環境を準備しておき、関数実⾏を⾼速化する。プロビジョニングするので追加料 ⾦がかかる。 10
設定値⑦ 呼び出し⽅法 • 同期呼び出し Lambdaを呼び出し、レスポンスを呼び出し元に返す実⾏⽅法。 invocation-typeが”Invoke”。 • ⾮同期呼び出し SNSやS3からのイベントをLambda⽤のイベントキューに⼊れ、Lambdaが ポーリングして処理を実⾏する。invocation-typeが”Event”。 イベントを保持する最⼤有効時間を設定できる(最⼤6時間)。
関数が失敗した際の再試⾏の最⼤回数を0〜2で指定する。さらに失敗したイ ベントをデッドレターキューに送信し、後続処理を実⾏する事も可能。 11
設定値⑧ 呼び出し⽅法 • 関数URL Lambdaを外部から単体で実⾏するためのURLを発⾏する機能。 通常API Gateway等を通してAWS外部からLambdaを実⾏する必要がある が、Lambda⾃体にURLを付与することで、API Gateway等の外部向けエンド ポイントが不要になる。 12
設定値⑨ その他 • コード署名 AWS Signerを利⽤してコード署名を⾏う事で、関数の改ざんがされていない ことを保証する機能。 署名検証に失敗したものはデプロイできないようにする設定が可能。 • データベースプロキシ RDS
Proxyを作成し、RDSへの接続時のコネクション数を制御する。 RDSのコンソールからも構築できるが、Lambdaコンソールから構築もでき るようになった。 13
設定値⑩ その他 • ステートマシン Step Functionsのステートマシンの作成が可能。Step Functionsのコンソー ルから作成するしかなかったが、Lambdaコンソールに統合された。 14
その他 最近のアップデート • LambdaコンソールへのCloudWatch Logs統合 LambdaコンソールでCloudWatch Logsのログを確認できるようになった。 • Lambda関数のダウンロード機能が追加 関数コードと設定YAMLファイルがダウンロードできるようになった。 •
Application Composerへのエクスポート機能が追加 サーバレスアプリケーションをGUIで構築(CloudFormationテンプレートの 作成)するApplication Composerへエクスポートできるようになった。 トリガー情報もエクスポートされるため、簡単にローコード化できる。 15
【宣伝】OpsJAWS re:Cap • 12/18(⽉) 18:30〜21:00 • AWSJ⽬黒オフィス • AWSのSAも登壇予定 • Opsなアップデートについて語り合いましょう!
• 開始前に軽⾷を持ち込んで軽く 懇親会を⾏う予定です! https://opsjaws.doorkeeper.jp/events/165903 16
【宣伝】CloudNative Days Tokyo 2023 • 12/11(⽉)‧12/12(⽕) 10:50〜18:30 • 有明セントラルタワー ホール&カンファレンス 3F
• CloudNativeなセッションが多数準備されています! • JAWS界隈で有名なあの⽅々もご登壇予定 • コミュニティLTとしてJAWSも参加予定 https://event.cloudnativedays.jp/cndt2023 17
どんどんLambda使っていきましょう! ご清聴ありがとうございました!! 18