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
390
インフラ担当者が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
270
宇宙最速のランチRecap LT会(開発者ツール&運用監視編)
nnydtmg
2
450
AWS All Certが伝える 新AWS認定試験取得のコツ (Machine Learning Engineer - Associate)
nnydtmg
1
1k
AWS認定試験 DEA受験記
nnydtmg
1
680
金融系・JTCエンジニアこそコミュニティに行け!
nnydtmg
0
230
Terraform v1.6.0で始めるインフラ単体テスト
nnydtmg
2
1.5k
AWSでTerraform超入門
nnydtmg
1
350
祝初選出!! AWS Community Builderになるには
nnydtmg
0
960
Other Decks in Technology
See All in Technology
今!ソフトウェアエンジニアがハードウェアに手を出すには
mackee
12
4.7k
AI開発ツールCreateがAnythingになったよ
tendasato
0
130
データアナリストからアナリティクスエンジニアになった話
hiyokko_data
2
440
自作JSエンジンに推しプロポーザルを実装したい!
sajikix
1
170
2025年夏 コーディングエージェントを統べる者
nwiizo
0
140
【実演版】カンファレンス登壇者・スタッフにこそ知ってほしいマイクの使い方 / 大吉祥寺.pm 2025
arthur1
1
830
2025年になってもまだMySQLが好き
yoku0825
8
4.7k
Evolución del razonamiento matemático de GPT-4.1 a GPT-5 - Data Aventura Summit 2025 & VSCode DevDays
lauchacarro
0
190
オブザーバビリティが広げる AIOps の世界 / The World of AIOps Expanded by Observability
aoto
PRO
0
370
大「個人開発サービス」時代に僕たちはどう生きるか
sotarok
20
9.9k
Aurora DSQLはサーバーレスアーキテクチャの常識を変えるのか
iwatatomoya
1
920
Snowflakeの生成AI機能を活用したデータ分析アプリの作成 〜Cortex AnalystとCortex Searchの活用とStreamlitアプリでの利用〜
nayuts
1
480
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
51
5.6k
4 Signs Your Business is Dying
shpigford
184
22k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Producing Creativity
orderedlist
PRO
347
40k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Building Applications with DynamoDB
mza
96
6.6k
Speed Design
sergeychernyshev
32
1.1k
It's Worth the Effort
3n
187
28k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.2k
Statistics for Hackers
jakevdp
799
220k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
The World Runs on Bad Software
bkeepers
PRO
70
11k
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