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
410
インフラ担当者が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 Network Firewall Proxyで脱Squid運用⁈
nnydtmg
0
5
WebアプリのObservabilityを実装しようonAWS
nnydtmg
0
20
リソースのテレメトリも管理したい!〜CloudWatch Telemetry管理のご紹介〜
nnydtmg
0
320
宇宙最速のランチRecap LT会(開発者ツール&運用監視編)
nnydtmg
2
470
AWS All Certが伝える 新AWS認定試験取得のコツ (Machine Learning Engineer - Associate)
nnydtmg
1
1.2k
AWS認定試験 DEA受験記
nnydtmg
1
710
金融系・JTCエンジニアこそコミュニティに行け!
nnydtmg
0
250
Terraform v1.6.0で始めるインフラ単体テスト
nnydtmg
2
1.6k
AWSでTerraform超入門
nnydtmg
1
380
Other Decks in Technology
See All in Technology
AIエージェントを5分で一気におさらい!AIエージェント「構築」元年に備えよう
yakumo
1
150
First-Principles-of-Scrum
hiranabe
4
1.9k
ファインディにおけるフロントエンド技術選定の歴史
puku0x
2
1.4k
プロンプトエンジニアリングを超えて:自由と統制のあいだでつくる Platform × Context Engineering
yuriemori
0
410
「リリースファースト」の実感を届けるには 〜停滞するチームに変化を起こすアプローチ〜 #RSGT2026
kintotechdev
0
840
「アウトプット脳からユーザー価値脳へ」がそんなに簡単にできたら苦労しない #RSGT2026
aki_iinuma
11
4.9k
Everything As Code
yosuke_ai
0
510
産業的変化も組織的変化も乗り越えられるチームへの成長 〜チームの変化から見出す明るい未来〜
kakehashi
PRO
1
510
Models vs Bounded Contexts for Domain Modularizati...
ewolff
0
140
「違う現場で格闘する二人」——社内コミュニティがつないだトヨタ流アジャイルの実践とその先
shinichitakeuchi
0
300
Keynoteから見るAWSの頭の中
nrinetcom
PRO
1
170
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
Featured
See All Featured
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
The SEO identity crisis: Don't let AI make you average
varn
0
47
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.1k
Accessibility Awareness
sabderemane
0
34
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
130
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.3k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Typedesign – Prime Four
hannesfritz
42
2.9k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
0
89
Testing 201, or: Great Expectations
jmmastey
46
7.9k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
51k
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