

# AWS Lambda とは
<a name="welcome"></a>

**ヒント**  
ベストプラクティスを使用して Serverless アプリケーションを構築する方法を知るには、Serverless の専門家による無料のハンズオンワークショップに参加します。[こちらをクリックして](https://aws-experience.com/amer/smb/events/series/Get-Hands-On-With-Serverless?trk=188abe3e-9f94-4e84-aefb-398d944ad567%26sc_channel%3Del)サインアップします。

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

Lambda は、次の目的で使用できます。
+ **ファイル処理**: Amazon Simple Storage Service にアップロードされると、ファイルを自動的に処理します。詳細については、「[ファイル処理の例](example-apps.md#examples-apps-file)」を参照してください。
+ **長時間のワークフロー:** [耐久性のある Lambda 関数](durable-functions.md)を使用し、最大 1 年間実行できるステートフルで複数ステップのワークフローを構築します。注文処理、承認ワークフロー、ヒューマンインザループのプロセス、進行状況を記憶する必要がある複雑なデータパイプラインに最適です。
+ **データベースオペレーションと統合の例**: データベースの変更に対応し、データワークフローを自動化します。詳細については、「[データベースの例](example-apps.md#examples-apps-database)」を参照してください。
+ **スケジュールされたタスクと定期的なタスク**: EventBridge を使用して自動オペレーションを定期的に実行します。詳細については、「[スケジュールされたタスクの例](example-apps.md#examples-apps-scheduled)」を参照してください。
+ **ストリーム処理**: 分析とモニタリングのためにリアルタイムのデータストリームを処理します。詳細については、「[Kinesis Data Streams](with-kinesis.md)」を参照してください。
+ **ウェブアプリケーション**: 需要に合わせて自動的に調整するスケーラブルなウェブアプリケーションを構築します。
+ **モバイルバックエンド**: モバイルアプリケーションとウェブアプリケーション用の安全な API バックエンドを作成します。
+ **IoT バックエンド**: ウェブ、モバイル、IoT、およびサードパーティーの API リクエストを処理します。詳細については、「[IoT](services-iot.md)」をご覧ください。

料金に関する情報については、[[AWS Lambda の料金](https://aws.amazon.com/lambda/pricing/)]を参照してください。

## Lambda の仕組み
<a name="how-lambda-works"></a>

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

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

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

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

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

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

**ヒント**  
**サーバーレスソリューション**を構築する方法については、「[サーバーレスデベロッパーガイド](https://docs.aws.amazon.com/serverless/latest/devguide/)」を参照してください。

## 主な特徴
<a name="features"></a>

**安全なアプリケーションを設定、制御、デプロイします。**
+ [環境変数](configuration-envvars.md)は、新しいコードをデプロイなしでアプリケーションの動作を変更します。
+ [バージョン](configuration-versions.md)は、安定した本番環境を維持しながら、新機能を安全にテストします。
+ [Lambda レイヤー](chapter-layers.md)は、複数の関数間で共通コンポーネントを共有することで、コードの再利用とメンテナンスを最適化します。
+ [コード署名](configuration-codesigning.md)は、承認されたコードのみが本番稼働システムに到達するようにすることで、セキュリティコンプライアンスを強化します。

**確実にスケールしてパフォーマンスを実現。**
+ [同時実行数とスケーリングの制御](lambda-concurrency.md)により、トラフィックの急増時にアプリケーションの応答性とリソース使用率を正確に管理します。
+ [Lambda SnapStart](snapstart.md) はコールドスタート時間を大幅に短縮します。Lambda SnapStart は通常、関数コードを変更することなく、わずか 1 秒未満の起動パフォーマンスを提供できます。
+ [レスポンスストリーミング](configuration-response-streaming.md)は、リアルタイム処理のために大きなペイロードを段階的に配信することで、関数のパフォーマンスを最適化します。
+ [コンテナイメージ](images-create.md)は、コンテナワークフローを使用して、複雑な依存関係を持つ関数をパッケージ化します。

**シームレスに接続して統合します。**
+ [VPC ネットワーク](configuration-vpc.md)は、機密リソースと内部サービスを保護します。
+ 永続データを共有し、関数呼び出し全体でステートフル操作を管理する[ファイルシステム](configuration-filesystem.md)。
+ [関数 URL](urls-configuration.md)は、追加のサービスなしで、パブリック向けの API とエンドポイントを作成します。
+ [Lambda 拡張機能](lambda-extensions.md)は、モニタリング、セキュリティ、運用ツールで関数を強化します。

## 関連情報
<a name="w2aab7c17"></a>
+ Lambda の仕組みについては、「[Lambda の仕組み](concepts-basics.md)」を参照してください。
+ Lambda の使用を開始するには、「[最初の Lambda 関数を作成する](getting-started.md)」を参照してください。
+ アプリケーション例の一覧については、「[サンプルアプリケーションとパターンの使用開始](example-apps.md)」を参照してください。