View a markdown version of this page

AWS Lambda 関数 - AWS Lambda

AWS Lambda 関数

ヒント

ベストプラクティスを使用して Serverless アプリケーションを構築する方法を知るには、Serverless の専門家による無料のハンズオンワークショップに参加します。こちらをクリックしてサインアップします。

AWS Lambda は、サーバーの管理を行うことなくコードを実行できるコンピューティングサービスです。コードが実行され、スケールアップとスケールダウンが自動的に実行され、従量課金制の価格設定が適用されます。開始するには、最初の関数を作成する を参照してください。

Lambda は、次の目的で使用できます。

  • ファイル処理: Amazon Simple Storage Service にアップロードされると、ファイルを自動的に処理します。詳細については、「ファイル処理の例」を参照してください。

  • 長時間のワークフロー: 耐久性のある Lambda 関数を使用し、最大 1 年間実行できるステートフルで複数ステップのワークフローを構築します。注文処理、承認ワークフロー、ヒューマンインザループのプロセス、進行状況を記憶する必要がある複雑なデータパイプラインに最適です。

  • データベースオペレーションと統合の例: データベースの変更に対応し、データワークフローを自動化します。詳細については、「データベースの例」を参照してください。

  • スケジュールされたタスクと定期的なタスク: EventBridge を使用して自動オペレーションを定期的に実行します。詳細については、「スケジュールされたタスクの例」を参照してください。

  • ストリーム処理: 分析とモニタリングのためにリアルタイムのデータストリームを処理します。詳細については、「Kinesis Data Streams」を参照してください。

  • ウェブアプリケーション: 需要に合わせて自動的に調整するスケーラブルなウェブアプリケーションを構築します。

  • モバイルバックエンド: モバイルアプリケーションとウェブアプリケーション用の安全な API バックエンドを作成します。

  • IoT バックエンド: ウェブ、モバイル、IoT、およびサードパーティーの API リクエストを処理します。詳細については、「IoT」をご覧ください。

料金に関する情報については、[AWS Lambda の料金]を参照してください。

関数と耐久性のある関数

Lambda 関数は最大 15 分間実行されます。API リクエストの処理、ファイルのアップロードの処理、データベースの変更への応答などのイベント駆動型のタスクに最適です。耐久性のある関数は、より長く実行し、中断に耐える必要があるワークロード用にこのモデルを拡張します。最大 1 年間実行可能で、進行状況を自動的にチェックポイントして、障害後に確実に再開できます。複数ステップのワークフロー、ヒューマンインザループの承認、または長期間にわたるサービス間の調整が必要な場合は、耐久性のある関数を使用してください。

Lambda の仕組み

Lambda を使用する際、ユーザーが責任を負うのはコードのみです。Lambda は、高可用性コンピューティングインフラストラクチャ上でコードを実行し、サーバーとオペレーティングシステムのメンテナンス、容量のプロビジョニングと自動スケーリング、コードのモニタリング、ログ記録などのすべてのコンピューティングリソースを管理します。

Lambda はサーバーレスのイベント駆動型コンピューティングサービスであるため、従来のウェブアプリケーションとは異なるプログラミングパラダイムを使用します。次のモデルは、Lambda の基本的な仕組みを示しています。

  1. Lambda 関数は、Lambda アプリケーションを作成するために使用する基本的な構成要素であり、コードの作成と整理に使用されます。

  2. セキュリティとアクセスは、Lambda のアクセス許可を通じて制御し、実行ロールを使用して、関数が対話できる AWS サービスと、コードと対話できるリソースポリシーを管理します。

  3. イベントソースとAWS サービスは Lambda 関数をトリガーし、関数が処理するイベントデータを JSON 形式で渡します (これにはイベントソースマッピングが含まれます)。

  4. Lambda は、ランタイム、レイヤー、拡張機能をパッケージ化した実行環境で、言語固有のランタイム (Node.js や Python など) を使用してコードを実行します

ヒント

サーバーレスソリューションを構築する方法については、「サーバーレスデベロッパーガイド」を参照してください。

主な特徴

安全なアプリケーションを設定、制御、デプロイします。

  • 環境変数は、新しいコードをデプロイなしでアプリケーションの動作を変更します。

  • バージョンは、安定した本番環境を維持しながら、新機能を安全にテストします。

  • レイヤーは、複数の関数間で共通コンポーネントを共有することで、コードの再利用とメンテナンスを最適化します。

  • コード署名は、承認されたコードのみが本番稼働システムに到達するようにすることで、セキュリティコンプライアンスを強化します。

確実にスケールしてパフォーマンスを実現。

  • 同時実行数とスケーリングの制御により、トラフィックの急増時にアプリケーションの応答性とリソース使用率を正確に管理します。

  • SnapStart はコールドスタート時間を大幅に短縮します。Lambda SnapStart は通常、関数コードを変更することなく、わずか 1 秒未満の起動パフォーマンスを提供できます。

  • レスポンスストリーミングは、リアルタイム処理のために大きなペイロードを段階的に配信することで、関数のパフォーマンスを最適化します。

  • コンテナイメージは、コンテナワークフローを使用して、複雑な依存関係を持つ関数をパッケージ化します。

シームレスに接続して統合します。

  • VPC ネットワークは、機密リソースと内部サービスを保護します。

  • 永続データを共有し、関数呼び出し全体でステートフル操作を管理するファイルシステム

  • 関数 URLは、追加のサービスなしで、パブリック向けの API とエンドポイントを作成します。

  • 拡張子は、モニタリング、セキュリティ、運用ツールで関数を強化します。

関連情報

AWS Lambda でのセキュリティ

AWS ではクラウドセキュリティが最優先事項です。セキュリティを最も重視する組織の要件を満たすために構築された 「AWS」 のデータセンターとネットワークアーキテクチャは、お客様に大きく貢献します。

セキュリティは、「AWS」 と顧客の間の責任共有です。責任共有モデルでは、この責任がクラウドセキュリティおよびクラウドのセキュリティとして説明されています。

  • クラウドのセキュリティ — AWS は、AWS クラウドで AWS のサービス を実行するインフラストラクチャを保護する責任を負います。また AWS は、お客様が使用するサービスを安全に提供します。「AWS」 コンプライアンスプログラムの一環として、サードパーティーの監査が定期的にセキュリティの有効性をテストおよび検証しています。AWS Lambda に適用されるコンプライアンスプログラムの詳細については、「コンプライアンスプログラムの対象範囲となる AWS のサービス」を参照してください。

  • クラウド内のセキュリティ - ユーザーの責任は、使用する AWS のサービスに応じて異なります。また、お客様は、お客様のデータの機密性、企業の要件、および適用可能な法律および規制などの他の要因についても責任を担います。

このドキュメントは、Lambda を使用する際に責任共有モデルを適用する方法を理解するのに役立ちます。以下のトピックでは、セキュリティとコンプライアンスの目的を達成するために Lambda を設定する方法を示します。また、Lambda リソースのモニタリングや保護に役立つ、他の AWS のサービスの使用方法についても説明します。

Lambda アプリケーションに対するセキュリティプリンシパルの適用の詳細については、Serverless Land の「セキュリティ」を参照してください。