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
270
インフラ担当者が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
120
宇宙最速のランチRecap LT会(開発者ツール&運用監視編)
nnydtmg
1
220
AWS All Certが伝える 新AWS認定試験取得のコツ (Machine Learning Engineer - Associate)
nnydtmg
1
690
AWS認定試験 DEA受験記
nnydtmg
1
510
金融系・JTCエンジニアこそコミュニティに行け!
nnydtmg
0
190
Terraform v1.6.0で始めるインフラ単体テスト
nnydtmg
2
1.2k
AWSでTerraform超入門
nnydtmg
1
220
祝初選出!! AWS Community Builderになるには
nnydtmg
0
660
Other Decks in Technology
See All in Technology
権威ドキュメントで振り返る2024 #年忘れセキュリティ2024
hirotomotaguchi
2
740
アップデート紹介:AWS Data Transfer Terminal
stknohg
PRO
0
180
AIのコンプラは何故しんどい?
shujisado
1
190
Wvlet: A New Flow-Style Query Language For Functional Data Modeling and Interactive Data Analysis - Trino Summit 2024
xerial
1
110
ハイテク休憩
sat
PRO
2
140
5分でわかるDuckDB
chanyou0311
10
3.2k
サイボウズフロントエンドエキスパートチームについて / FrontendExpert Team
cybozuinsideout
PRO
5
38k
Amazon SageMaker Unified Studio(Preview)、Lakehouse と Amazon S3 Tables
ishikawa_satoru
0
150
【re:Invent 2024 アプデ】 Prompt Routing の紹介
champ
0
140
watsonx.ai Dojo #5 ファインチューニングとInstructLAB
oniak3ibm
PRO
0
160
ガバメントクラウドのセキュリティ対策事例について
fujisawaryohei
0
530
ずっと昔に Star をつけたはずの思い出せない GitHub リポジトリを見つけたい!
rokuosan
0
150
Featured
See All Featured
The Language of Interfaces
destraynor
154
24k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.2k
Become a Pro
speakerdeck
PRO
26
5k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Building an army of robots
kneath
302
44k
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
GraphQLとの向き合い方2022年版
quramy
44
13k
KATA
mclloyd
29
14k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
510
The Cult of Friendly URLs
andyhume
78
6.1k
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