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
250
インフラ担当者が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
AWS All Certが伝える 新AWS認定試験取得のコツ (Machine Learning Engineer - Associate)
nnydtmg
1
570
AWS認定試験 DEA受験記
nnydtmg
1
480
金融系・JTCエンジニアこそコミュニティに行け!
nnydtmg
0
180
Terraform v1.6.0で始めるインフラ単体テスト
nnydtmg
2
1.2k
AWSでTerraform超入門
nnydtmg
1
200
祝初選出!! AWS Community Builderになるには
nnydtmg
0
630
Other Decks in Technology
See All in Technology
Application Development WG Intro at AppDeveloperCon
salaboy
0
180
隣接領域をBeyondするFinatextのエンジニア組織設計 / beyond-engineering-areas
stajima
1
270
[FOSS4G 2019 Niigata] AIによる効率的危険斜面抽出システムの開発について
nssv
0
310
BLADE: An Attempt to Automate Penetration Testing Using Autonomous AI Agents
bbrbbq
0
290
Lambdaと地方とコミュニティ
miu_crescent
2
370
ハイパーパラメータチューニングって何をしているの
toridori_dev
0
140
Why App Signing Matters for Your Android Apps - Android Bangkok Conference 2024
akexorcist
0
120
20241120_JAWS_東京_ランチタイムLT#17_AWS認定全冠の先へ
tsumita
2
240
安心してください、日本語使えますよ―Ubuntu日本語Remix提供休止に寄せて― 2024-11-17
nobutomurata
0
980
10XにおけるData Contractの導入について: Data Contract事例共有会
10xinc
5
580
Engineer Career Talk
lycorp_recruit_jp
0
110
【Startup CTO of the Year 2024 / Audience Award】アセンド取締役CTO 丹羽健
niwatakeru
0
930
Featured
See All Featured
Teambox: Starting and Learning
jrom
133
8.8k
Scaling GitHub
holman
458
140k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Typedesign – Prime Four
hannesfritz
40
2.4k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
Building Your Own Lightsaber
phodgson
103
6.1k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
65k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.8k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Writing Fast Ruby
sferik
627
61k
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