AWSラムダとは何ですか? Lambda 関数と例
⚡ スマートサマリー
AWS Lambdaは、イベント駆動型のサーバーレスコンピューティングプラットフォームです。 Amazon トリガーに応じてコードを実行し、プロビジョニング、スケーリング、サーバー管理を自動的に処理するWebサービス。これにより、ビジネスロジックに集中できます。
AWS Lambdaについて詳しく調べる前に、サーバーレスとは何かを理解しておくと役立ちます。
サーバーレスとは何ですか?
サーバーレスとは、一般的にサーバーレスアプリケーションを指す用語です。サーバーレスアプリケーションは、サーバーの設置や管理を一切必要としません。
AWS Lambdaとは何ですか?
AWS Lambda は、によって提供されるイベント駆動型のサーバーレス コンピューティング プラットフォームです。 Amazon の一環として、 Amazon ウェブサービス。そのため、どのAWSリソースを起動するか、あるいはそれらをどのように管理するかを心配する必要はありません。代わりに、コードをLambdaに配置するだけで、実行されます。
AWS Lambda では、S3 バケットへのファイルの追加や削除、HTTP リクエストなど、AWS サービスでのイベントの応答に基づいてコードが実行されます。 Amazon API Gateway や同様のイベント。ただし、 Amazon Lambda はバックグラウンド タスクの実行にのみ使用できます。
AWS Lambda関数を利用することで、オペレーティングシステム(OS)のアクセス制御、OSパッチ適用、適切なサイジング、プロビジョニング、スケーリングなどの管理に時間を費やすことなく、コアとなる製品開発やビジネスロジックに集中することができます。
AWS Lambda はどのように機能しますか?
次のブロック図付きの AWS Lambda の例では、AWS Lambda の動作をいくつかの簡単な手順で説明しています。
ステップ1: まず、AWS Lambda でサポートされている言語で AWS Lambda コードをアップロードします。 Java, PythonAWS Lambda関数でサポートされている言語には、Go、C#などがあります。
ステップ2: これらは、AWS Lambda をトリガーできるようにするいくつかの AWS サービスです。
ステップ3: AWS Lambda を使用すると、コードと、それをトリガーするイベントの詳細をアップロードできます。
ステップ4: AWSサービスによってトリガーされた際に、AWS Lambdaコードを実行します。
ステップ5: AWSは、AWS Lambdaコードが実行された場合にのみ課金し、それ以外の場合は課金しません。
これは次のシナリオで発生します。
- S3 バケットにファイルをアップロードする
- HTTP GET/POST エンドポイントの場合 URL ヒット
- Dynamo DBテーブルの追加、変更、削除について
- データストリーム収集の過程中
- プッシュ通知
- ウェブサイトのホスティング
- メール送信
注意: AWS Lambda コードが実行された場合にのみ AWS サービスの利用料金が発生し、それ以外の場合は料金は一切発生しないことを覚えておいてください。
AWS Lambda をトリガーするイベント
AWS Lambda を使用すると、以下のイベントがトリガーされます。
- Dynamo DB テーブルへのデータの挿入、更新、削除
- SNSにプッシュ通知を含めるには
- CloudTrail でログ履歴を検索するには
- S3 オブジェクトへのエントリ
- DynamoDB テーブルにデータが追加、変更、削除されるたびに AWS Lambda をトリガーできます。
- 定期的な時間帯にタスクを実行するためのイベントのスケジュール設定に役立ちます。
- S3 バケット内のオブジェクトの変更
- から送信された通知 Amazon SNS。
- AWS LambdaはCloudTrailログの処理に使用できます。
- API Gateway を使用すると、GET/POST メソッドで AWS Lambda をトリガーできます。
AWSラムダ Concepts
機能: 関数とは、AWS Lambda で実行されるプログラムまたはスクリプトです。 Lambda は呼び出しイベントを関数に渡し、関数はイベントを処理してその応答を返します。
ランタイム: ランタイムでは、同じ基本実行環境で実行されるさまざまな言語の関数を使用できます。これにより、ランタイムで関数を構成できます。また、選択した内容にも一致します。 プログラミング言語.
イベントソース: イベントソースは、次のような AWS サービスです。 Amazon SNS、またはカスタムサービス。このトリガーは、関数がそのロジックを実行するのに役立ちます。
ラムダ層: Lambda レイヤーは、ライブラリ、カスタム ランタイム、その他の重要な関数の依存関係の重要な配布メカニズムです。 この AWS コンポーネントは、開発関数コードを、使用される不変のコードやリソースとは別に管理するのにも役立ちます。
ログストリーム: ログストリームを使用すると、関数コードにカスタムログステートメントを注釈として追加でき、AWS Lambda関数の実行フローとパフォーマンスの分析に役立ちます。
AWSラムダの使い方
それでは、AWS Lambda の例を用いて、AWS Lambda の使い方を学びましょう。
ステップ1) AWS Lambdaを開く URL
に行く https://aws.amazon.com/lambda/ さあ、始めましょう。
ステップ2) してアカウントを作成
次に、アカウントを作成するか、既存のアカウントでログインしてください。
ステップ3) コードを編集して「実行」をクリックしてください。
次のLambdaページでコードを編集し、「実行」をクリックします。
ステップ4) 出力を確認してください
出力結果が表示されます。
AWS Lambda VS AWS EC2
AWS Lambdaと EC2.
| 技術パラメータ | AWSラムダ | AWS EC2 |
| AWS Lambda はサービスとしてのプラットフォーム (PaaS) です。 バックエンド コードを実行するのに役立ちます。 | AWS EC2は、サービスとしてのインフラストラクチャ(IaaS)であり、仮想化されたコンピューティングリソースを提供します。 | |
| 柔軟性 | コンピューティングインスタンスへのログインに関して、柔軟性は一切提供されません。ただし、カスタマイズされたオペレーティングシステムや言語ランタイムを選択することは可能です。 | さまざまなインスタンス、カスタムオペレーティングシステム、セキュリティパッチ、ネットワークなどを選択できる柔軟性を提供します。 |
| インストールプロセス | コードを実行する環境を選択し、AWS Lambdaにコードをプッシュする必要があります。 | EC2 では初めて、OS を選択し、必要なソフトウェアをすべてインストールしてから、コードを EC2 にプッシュする必要があります。 |
| 環境制限 | 対応言語は限られています。 | 環境制限はありません。 |
AWS LambdaとAWS Elasticの比較 Beanstalk
AWS LambdaとElasticの主な違いは以下のとおりです。 Beanstalk.
| 技術パラメータ | AWS エラスティック Beanstalk | AWSラムダ |
| 主な任務 | アプリケーションを実行するインフラストラクチャを気にすることなく、AWS クラウド上でアプリケーションをデプロイおよび管理できます。 | AWS Lambdaは、バックエンドコードの実行に使用されます。アプリケーションのデプロイには使用できません。 |
| AWS リソースの選択 | これにより、AWSリソースを自由に選択できます。例えば、アプリケーションに応じて最適なEC2インスタンスを選択できます。 | EC2インスタンスの種類など、AWSリソースを選択することはできません。Lambdaはワークロードに基づいてリソースを提供します。 |
| システムの種類 | それはステートフルなシステムです。 | ステートレスなシステムです。 |
AWS Lambdaの使用例
AWS Lambdaは、以下のような幅広い用途に使用されています。
- お手伝いします ETLプロセス
- リアルタイムのファイル処理とリアルタイムのストリーム処理を実行できます。
- Webアプリケーションの作成に使用します
- で使用 Amazon Alexaチャットボットなどの製品や Amazon エコー/アレクサ
- データ処理 (リアルタイム ストリーミング分析)
- 日常業務の自動バックアップ
- 拡張性の高いバックエンド(モバイルアプリ、IoTデバイス)
- サーバー側のバックエンド ロジックの実行に役立ちます
- データのフィルタリングと変換を可能にします
Lambda 関数のベストプラクティス
AWS Lambda関数のベストプラクティスをいくつかご紹介します。
- 適切な「タイムアウト」を使用してください。
- /tempフォルダにある500MBのローカルストレージの機能を活用してください。
- 現在のイベント処理に直接関係のない起動コードの使用を最小限に抑えてください。
- リクエストのレイテンシを表示および最適化するには、Lambda 関数の組み込み CloudWatch モニタリングを使用する必要があります。
AWS Lambda を使用すべきでない場合
以下のような状況では、Lambdaは必ずしも理想的な選択肢とは言えません。
- AWS Lambda は、基盤となるメソッドの呼び出しに依存するソフトウェア パッケージやアプリケーションには適していません。 Windows RPC。
- MS-Office文書処理などのライセンス契約付きのカスタムソフトウェアアプリケーションに使用される場合、 Oracle データベース等
- AWS Lambdaは、GPUアクセラレーションやハードウェアアフィニティなどのカスタムハードウェア処理には使用しないでください。
AWS Lambda を使用する利点
AWS Lambdaを使用するメリットは以下のとおりです。
- AWS Lambdaは非常に柔軟性の高いツールです。
- これは、VPCを含むリソースへのアクセス権を付与するのに役立ちます。
- 著者と直接 WYSIWYG編集者 コンソールで。
- のプラグインとして使用できます Eclipse (NAIST) と Visual Studioの.
- サーバーレスアーキテクチャであるため、サーバーの管理やプロビジョニングについて心配する必要はありません。
- 何も設定する必要はありません 仮想マシン.
- 開発者がインフラストラクチャを構築せずに、イベントに対するコードの応答を実行できるようにします。
- コードを実行した際に発生した計算時間分だけを支払えばよいのです。
- CloudWatch を通じてコードのパフォーマンスをリアルタイムで監視できます。
- これにより、他のサーバーをプロビジョニングしたり管理したりすることなく、コードを実行できます。
- 必要な時だけコードを実行するのに役立ちます。
- 自動的に拡張して、XNUMX 日に数件のリクエストを処理したり、XNUMX 秒あたり数千件を超えるリクエストをサポートしたりすることもできます。
- AWS Lambda は、スケジュールされたタスクを実行するために外部イベント タイマーを使用して設定できます。
- AWSのLambda関数は、スケジューリングに使用できるように、外部イベントとタイマーを設定する必要があります。
- ラムダ関数はステートレスであるため、迅速にスケールアップできます。
- AWS Lambda は高速なので、ミリ秒以内にコードを実行します。
AWS Lambda の制限
AWS Lambda を使用する場合の短所と短所は次のとおりです。
- AWS Lambda ツールは小規模プロジェクトには適していません。
- AWS Lambdaはインフラストラクチャを完全にAWSに依存しているため、コードで追加のソフトウェアが必要な場合でも、それをインストールすることはできません。
- 同時実行数のデフォルト制限はリージョンごとに1,000ですが、リクエストに応じて増やすことができます。
- メモリ容量は128MBから10,240MBまで変化する。
- イベント リクエストは 128 KB を超えてはなりません。
- Lambda 関数は、CloudWatch にのみログを書き込むのに役立ちます。 これは、機能の監視またはトラブルシューティングを可能にする唯一のツールです。
- コード実行のタイムアウトは15分に制限されています。





