はじめに AWS Lambdaは、イベント駆動型のサーバーレスコンピューティングサービスであり、API GatewayやEventBridgeなど様々なサービスから起動されます。 この記事ではAWS Lambdaでのインメモリキャッシュのポイントと、その実装方法について解説します。 キャッシュとは コンピューティングにおいて、キャッシュは、データのサブセットが保存される高速のデータストレージレイヤーで、通常は一時的な性質のものです。これにより、それ以降に同じデータのリクエストが発生した場合、データのプライマリストレージロケーションにアクセスするよりも高速にデータが供給されます。キャッシュにより、以前に取得または計算されたデータを効率的に再利用できるようになります。 AWSでキャッシュを活用することのメリット AWSでキャッシュを活用することで以下のようなメリットがあります。 パフォーマンス
はじめに Amazon ConnectからAWS Lambdaを呼出し、SMS送信する方法を紹介します。 発信元の電話番号がSMS送信可能な番号であれば送信し、その番号がSMS送信できない場合は、手動でSMS送信先の電話番号を入力してもらう仕組みを実装しました。 前提条件 Amazon SNS で SMS送信できること。必要に応じてサンドボックス解除の申請や使用限度額の引き上げを行ってください。 https://dev.classmethod.jp/articles/amazon-sns-sms-sandbox/ Amazon Connectインスタンスを作成済みであること Lambda 関数作成 SMS送信用のLambda 関数を作成します。 SMS送信を許可するIAMポリシーを作成し、Lambda関数のIAMロールに適用します。 ポリシーは以下の通りです。 { "Version": "
CSVデータをS3にアップロード時AWS Lambdaをトリガーし、自動的にDynamoDBへデータを書き込んでみた はじめに Amazon S3バケットにアップロードしたCSVデータをAmazon DynamoDBテーブルに自動的に書き込むAWS Lambdaの作成方法を紹介します。 CSVデータをAmazon S3バケットにアップロード時、AWS LambdaをトリガーしAmazon DynamoDBテーブルにデータを書き込む方法について紹介します。 CSVデータをAmazon S3バケットにアップロード時、AWS LambdaをトリガーしDynamoDBにデータを書き込んでみた 構成は以下の通りです。 本構成では、AWSマネジメントコンソールからS3バケットにCSVファイルをアップロードすると、S3のPUTイベントをトリガーとしてLambda関数が起動します。Lambda関数は、CS
コンテナをリクエスト処理時間ベースの料金体系で実行できるサーバレス環境としては、Google の Cloud Run(2019年11月GA)と AWS Lambda(2020年12月にコンテナに対応)が特に有名でしょう。 これらの環境は、一度起動したコンテナインスタンスをしばらく生かしておき、その後のリクエストに使いまわします。しかし、生きているインスタンスが足りない場合は新たなコンテナの起動から始めるいわゆる「コールドスタート」となり、応答のオーバーヘッドが大きく増加します。用途によっては、このコールドスタートにかかる時間が問題になります。 Cloud Run と Lambda でのコールドスタートの様子を観察するため、いくつかの言語で "Hello, World!" を返すだけのWebアプリコンテナを作り、コールドスタートの時間を「雑に」観察してみました。 注意: コストや性能は考慮し
AWS Compute Blog Using the circuit-breaker pattern with AWS Lambda extensions and Amazon DynamoDB This post is written by Alan Oberto Jimenez, Senior Cloud Application Architect, and Tobias Drees, Cloud Application Architect. Modern software systems frequently rely on remote calls to other systems across networks. When failures occur, they can cascade across multiple services causing service disru
AWS Compute Blog Running code after returning a response from an AWS Lambda function This post is written by Uri Segev, Principal Serverless Specialist SA. When you invoke an AWS Lambda function synchronously, you expect the function to return a response. For example, this is the case when a client invokes a Lambda function through Amazon API Gateway or from AWS Step Functions. As the client is wa
はじめに AWS LambdaのFunction URLs(関数URL)は、Lambda単体でHTTPSのURLを発行し、HTTPリクエストをトリガーにLambdaを実行出来るようになる、非常に便利な機能です。 API Gatewayと統合せずともLambdaのみでWebAPIを構築出来るようになり、プロトタイピングやマイクロサービスに有用です。 関数URLの制限 ところで、関数URLの実行の認可は、IAMを用いた方法しかありませんでした(IAMロールベースの認可か、認可なししか無かった)。 Cloudfrontをリバースプロキシ的に前段に配置し、関数URLと繋ぐことで、ドメインを当てたりキャッシュを活用したり、便利な訳ですが、その際に上記が問題となります。というのは、CloudfrontからIAMベースのリクエストを行うには、Lambda@Edgeを利用するしかありませんでした(オリジン
Amazon Web Services(AWS)は、サーバレス基盤として提供しているAWS LambdaでRuby 3.3のサポートを開始したと発表しました。 Ruby 3.3は昨年(2023年)12月にリリースされた最新版のRubyです。パフォーマンスとメモリ使用量を大幅に改善したYJITコンパイラを搭載し、M個のRubyスレッドをN個のOSのネイティブスレッドで管理することでスレッドの生成管理コストを抑えることができるM:Nスレッドスケジューラなどの新機能が搭載されています。 参考:Ruby 3.3正式リリース。YJITコンパイラの大幅な性能向上、RubyのスレッドスケジューラとしてM:Nスレッドスケジューラ導入など新機能 AWS LambdaのRuby 3.3ランタイムは、AL2023 minimal container imageをベースにした新しいAmazon Linux 202
AWS Lambda now supports creating serverless applications using Ruby 3.3. Developers can use Ruby 3.3 as both a managed runtime and a container base image, and AWS will automatically apply updates to the managed runtime and base image as they become available. The Lambda Ruby 3.3 runtime is built on the new Amazon Linux 2023 runtime, which is based on the AL2023 minimal container image. This provid
AWS Lambda のハンドラは辛い こんにちは!AWS Lambda初心者です! AWS Lambda と言えば、サーバレスかつ非常に安い価格で無限にスケールアウトできる処理を書けることで有名ですが1、 2022年04月の Function URL アップデート でAPI Gatewayなど用いなくてもラムダ単体かつ無料でHTTPリクエストを処理できるURLを持てるようになり、かなりの神サービスになりました。 弊社でも Function URL でラムダによる外部連携用のサーバを立てておき、ちょっとしたHTTPのリクエストを受け取って、他所のサーバにデータ連携したり、S3にリクエスト中のデータを保存したりする用途に積極的に使っています。 さて、そんな神サービスである AWS Lambda 君ですが、いざ実際にJavaScriptでHTTPサーバを書こうとすると…… ちょっと辛い! //
AWS LambdaからAmazon Bedrockを呼び出す際、S3に保存したプロンプトファイルを参照させる はじめに AWS LambdaからAmazon Bedrockを呼び出す際、事前にS3バケットに保存したプロンプトファイルを参照させる方法をまとめました。 プロンプト部分のみをLambdaのコードから切り離すことで、コードの修正することなく、生成AIへのプロンプトを変更することができます。 利用想定シーンとしては、開発者と運用者が異なる場合に、運用者がプロンプトをチューニングしたいケースです。 以下に、構成の概要を示します。 Bedrock 東京リージョンで、利用したいモデルを有効化します。今回は、Claudeが利用できるよう設定しました。 S3バケット S3バケットに、prompt.txtというファイル名でプロンプトを記載しアップロードします。 プロンプト内容は、以下の通りです
ハッカソン参加時の備忘録 ~ 第6回:【Python】AWS LambdaとAWS Rekoginitionを連携させてみよう ~PythonAWSハッカソンlambdaReKognition こんにちは。ITエンジニアのきゅうです。 前回、AWSのLambdaとAWSのS3(ストレージサービス)を連結させるサンプルを備忘録したので、今回は当方が良く使うAWSのAIサービスの一つであり、簡単に画像解析を行うことが出来るサービス『Rekoginition』と連結したいと思います。 今回作成するシステム構成図です。 ※前回の備忘録に記載した『S3』が登場しております。 これはRekognitionに読み込ませる画像をS3などに格納しておく必要がある為です。 ですので、今回の記事では以下の記事の設定がしてあることが前提となります。 Amazon Rekoginitionについて 改めて、Reko
AWS Lambda用のデプロイツール、lambroll の v1.0 を2024年2月10日にリリースしたのでお知らせです。 github.com リリースして早速ですが v1.0.0 には一部のフラグ名がv0と異なるというバグがあるので、v1.0.1 以降をご利用ください。 v0.x と v1 の変更点 リポジトリ にまとめてありますが、簡単に解説します。 非互換変更 lambroll archive zipのバイナリを、標準出力ではなくファイルに書き出します デフォルトのファイル名 function.zip(--dest オプションで指定可能) に書き出すようになりました。 --dest - を指定することで、v0と同様に標準出力に書き出すことができます。 lambroll diff コマンドは、常に短縮型の unified 形式で出力します --unified オプションは廃止され
Transcript Danilov: We'll talk about AWS Lambda, how it's built, how it works, and why it's so cool. My name is Mike Danilov. I'm a Senior Principal Engineer at AWS Serverless. A decade ago, I joined EC2 networking team, and it was a fantastic ride. Then, five years back, I heard about Lambda. I really liked the simplicity of the idea. We run your code in the cloud, no servers needed, so I joined
Powertools for AWS Lambda (TypeScript) の Logger で service(サービス名)を指定したみた こんにちは、CX 事業本部製造ビジネステクノロジー部の若槻です。 Powertools for AWS Lambda (TypeScript) の Logger を使用すると、Lambda の呼び出しイベントやコンテキストなどのフィールドを追加した構造化ログの出力を実装することができます。 今回は、この Powertools for AWS Lambda (TypeScript) の Logger で service(サービス名) フィールドを指定してみました。 試してみた パッケージインストール @aws-lambda-powertools/logger をインストールします。 npm i @aws-lambda-powertools/logge
目次[非表示] 1.はじめに 2.AWS Lambdaって一体なにがすごいのか 3.実行したい処理だけを開発すれば良いサーバレスのすごさ 4.Lambdaで具体的に何ができるの? 5.DynamoDBからタスクの納期を取得して、SLACKに通知してみる 5.1.AWS Cloud9で実装環境を用意する 5.2.Node.jsのインストール 5.3.Serverless Frameworkのインストール 5.4.Serverless Frameworkのテンプレートの準備 5.5.Node.jsのライブラリーのインストール 5.6.定期実行される関数の作成 5.7.Slack通知機能を実装 5.8.AWS Systems ManagerにWebhook URLを保存 5.9.IAMの設定 5.10.Severless API Gateway Throttingの導入 5.11.DynamoD
AWS Lambdaは、あらかじめ登録した関数を負荷に応じて同時に並列実行することでスケーラブルな処理を実現する仕組みを備えています。 例えばニュースサイトやオンラインストアなどで突発的なトラフィックが発生したとしても、AWS Lambdaを用いて構築することでオンデマンドで迅速にスケール可能となっています。 AWSは、このAWS Lambdaのスケール速度がこれまでよりも最大で12倍速になったと発表しました。 具体的な説明を「AWS Lambda 関数が大量のリクエストを処理する場合に 12 倍速くスケールできるようになりました 」から引用します。 まず、従来のスケール速度は1アカウントあたり最初の1分で500から300程度、その後毎分500ずつとなっていました。 最初の 1 分で 500~3,000 回の同時実行 (リージョンによって異なります) をアカウントレベルでスケールし、その後
Amazon Web Services ブログ AWS Lambda 関数が大量のリクエストを処理する場合に 12 倍速くスケールできるようになりました AWS Lambda は、最大 12 倍速くスケールアップできるようになりました。同期的に呼び出される各 Lambda 関数は、すべての関数の合計同時実行数がアカウントの同時実行数の上限に達するまで、10 秒ごとに 1,000 回の同時実行回数でスケールするようになりました。さらに、アカウント内の各関数は、関数の呼び出し方法に関係なく、互いに独立してスケールするようになりました。これらの改善には追加コストはかかりません。また、既存の関数の設定を行う必要もありません。 スケーラブルで高性能なアプリケーションを構築することは、従来のアーキテクチャでは困難な場合があり、ピーク時の需要や予測不可能なトラフィックに対応するために、コンピューティング
[アップデート] AWS Lambda コンソールからも AWS Lambda と Amazon RDS の接続設定ができるようになりました いわさです。 数ヶ月前ですが、RDS のコンソール画面から Lambda 関数と VPC 接続構成を行うための機能が実装されました。 パラメータや必要リソースを一部自動作成・設定してくれるので、検証用途などでささっとネットワーク設定を行うたい場合に有効な機能でした。 上記のタイミングでは RDS コンソールから構成が可能だったのですが、本日のアップデートで Lambda コンソールからも RDS との接続構成設定を行うことが出来るようになりました。 ふーん?と思って見てみたところ初見だとどこから設定するのかよくわからなかったのと、手順などが公式ドキュメントに記述されていないように見受けられたので、変更点をまとめてみました。 設定方法 今回のアップデー
Starting today, AWS Lambda functions now scale up at a 12x faster rate. With this improvement each function can scale up to a rate of 1,000 concurrent executions every 10 seconds, up to your account concurrency limit. Workloads such as SLA-bound data processing or web applications with request-response patterns require high scalability and are prone to frequent changes in traffic. Previously, Lamb
AWS News Blog AWS Lambda functions now scale 12 times faster when handling high-volume requests Now AWS Lambda scales up to 12 times faster. Each synchronously invoked Lambda function now scales by 1,000 concurrent executions every 10 seconds until the aggregate concurrency across all functions reaches the account’s concurrency limit. In addition, each function within an account now scales indepen
Amazon Kinesis Data Streams now supports resource-based policies, so you can process data ingested into a stream in one account with an AWS Lambda function in another account. Amazon Kinesis Data Streams is a serverless real-time data streaming service that can continuously capture gigabytes of data per second from hundreds of thousands of sources. AWS Lambda is a serverless compute service that l
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く