Amazon Web Services ブログ

AWS Lambda でお気に入りの運用ツールを使い始める – 拡張機能が正式にリリース

2020 年 10 月、AWS Lambda 拡張機能のプレビューを発表しました。AWS Lambda 拡張機能を使用すると、Lambda 関数を監視、観測、セキュリティ、およびガバナンス用のお気に入りのツールと簡単に統合できます。

本日、AWS Lambda Extensions の一般提供を発表いたします。この拡張には、新しいパフォーマンスの向上と拡張されたパートナーセットが付いています。GA リリースの一環として、関数に含まれる拡張機能の終了を待たずに、関数コードが完了するとすぐに、応答を送信する機能を有効にしました。これにより、関数の応答が返された後に、拡張機能が優先宛先へのテレメトリ送信などのアクティビティを実行できます。また、Imperva、Instana、Sentry、Site24x7、および OpenTelemetry 用の AWS ディストリビューションなど、新しいパートナーからの拡張機能も喜んで受け入れています。

Lambda 拡張を次のようなユースケースに使用できます。関数の呼び出し前、実行中、および後の診断情報の取得、コードの変更を必要としないコードの自動計測、関数呼び出し前の構成設定またはシークレットの取得、セキュリティエージェントを介した機能アクティビティの検出と警告、Amazon Simple Storage Service (Amazon S3)Amazon KinesisAmazon Elasticsearch Service などのカスタム宛先に Lambda 関数から直接および非同期に送信。

お客様は、サーバーレスのビジョンに惹かれています。運用上の責任が軽減されるので、ビジネス上の問題に集中できるようになります。お客様が機能を監視、観測、保護、および管理できるように、AWS Lambda は Amazon CloudWatch を通じてログとメトリックスのネイティブ統合を提供し、 AWS X-Ray を介してトレースし、AWS Config により設定変更を追跡し、 AWS CloudTrail による API 呼び出しを記録します。さらに、 AWS Lambda パートナーは、アプリケーション管理、API 統合、デプロイ、監視、およびセキュリティを提供します。

AWS Lambda 拡張機能は、関数コードが実行される Lambda 実行環境を拡張する簡単な方法を提供します。AWS のお客様、パートナー、およびオープンソースコミュニティは、新しい Lambda Extensions API を使用して、Lambda 関数の機能を強化するコンパニオンプロセスである独自の拡張機能を構築できます。独自の拡張機能を作成する方法については、「 AWS Lambda のビルド拡張機能 – プレビュー 」のブログ記事を参照してください。投稿には、Lambda ライフサイクルの変更に関する情報も含まれています。

AWS Lambda 拡張機能の仕組み
AWS Lambda 拡張機能は、複雑なインストールや設定管理を必要とせずに、現在使用しているツールを簡単に接続できるように設計されています。Lambda レイヤーを使用して関数にツールを追加したり、コンテナーイメージとしてデプロイされた関数のイメージにツールを含めることができます 。

Lambda 拡張機能は、Extensions API を使用して、関数および実行環境のライフサイクルイベントを登録します。これらのイベントに応答して、エクステンションは新しいプロセスを開始したり、ロジックを実行したりできます。Lambda 拡張機能は、Runtime Logs API を使用して、Lambda サービスが Lambda 実行環境から Amazon CloudWatch に直接送信するのと同じログのストリームをサブスクライブすることもできます。Lambda はログをエクステンションにストリーミングし、拡張機能はログを処理、フィルタリングして、任意の宛先に送信できます。

お客様の多くは、Extensions API の機能について知る必要なく Lambda 拡張機能を使用します。Lambda 関数でオプションを設定することで、エクステンションの機能を使用することができます。

Lambda 拡張機能の使い方
Lambda コンソールAWS コマンドラインインターフェイス (CLI) を使用して、または AWS CloudFormationAWS サーバーレスアプリケーションモデル (AWS SAM)、Terraform などの Infrastructure as Code (IaC) サービスおよびツールを使用して、拡張機能をインストールおよび管理できます。

Lambda 拡張機能を使用して既存のツールを Lambda 関数と統合するには、Lambda 関数を選択し、[構成] タブで [監視および操作ツール] を選択します。

[拡張機能] ページで、AWS Lambda パートナーから利用可能な拡張機能を見つけることができます 。拡張機能を選択して、インストール手順を表示します。

AWS Lambda 拡張パートナー
本発表時に、Lambda 拡張機能は、拡張機能を導入するために以下の情報を提供した AWS Lambda パートナーと統合します。(この記事が公開されているリンクで更新しています。)

  • AppDynamics は、AWS Lambda のエンドツーエンドのトランザクショントレースを提供します。AppDynamics 拡張機能では、デベロッパーは関数コードへの依存関係として AppDynamics トレーサーを含めることが必須ではなくなり、ハイブリッドアーキテクチャ間のトランザクションのトレースがさらに簡単になります。
  • Coralogix は、ログ分析とクラウドセキュリティプラットフォームで、何千もの企業がセキュリティを向上させ、ソフトウェア配信を加速し、ノイズに対してお金を払うことなく深い洞察を得ることができます。Coralogix は、CloudWatch や Amazon S3 を使用せずに Lambda 関数のログとメトリックスを直接読み取れるようになりました。これにより、レイテンシーが削減され、監視のコストが削減されます。
  • Datadog 拡張機能は、サーバーレスアプリケーションを包括的かつリアルタイムに可視化します。Datadog を AWS と統合することで、メトリックス、トレース、ログを取得して、あらゆる規模で問題を監視、検出、解決できます。Datadog 拡張機能を使用すると、サーバーレスワークロードからテレメトリを取得することが以前よりも簡単になります。
  • Dynatrace 拡張機能を使用すると 、AWS Lambda メトリックスとトレースを Dynatrace プラットフォームに簡単に取り込むことで、インテリジェントな観測性と根本原因の自動検出が可能になります。コード変更をせずスイッチを切り替えるだけで、包括的でエンドツーエンドの可観測性を得ることができます。
  • Epsagon は、Lambda 関数の監視、トラブルシューティング、コストの削減に役立ちます。Epsagon の拡張機能は、トレースを Epsagon サービスに送信するオーバーヘッドを減らし、関数に対するパフォーマンスへの影響を最小限に抑えます。
  • HashiCorp Vault を使用すると、アプリケーションの秘密や機密データを安全に保管し、アクセスを厳重に管理することができます。Vault 拡張機能を使用すると、Lambda 関数が呼び出される前に、dynamic secrets を認証し安全に取得できます。
  • Honeycomb は、運用アプリケーションスタック全体をデバッグするのに役立つ強力な監視ツールです。Honeycomb の拡張により、Honeycomb サービスへのイベントの送信にかかるオーバーヘッド、レイテンシー、およびコストが削減され、信頼性が向上しています。
  • Instana Enterprise Observability Platform は、パフォーマンスメトリックを取り込み、要求をトレースし、プロセスをプロファイルして、企業の可観測性を機能させます。Instana Lambda 拡張機能は、リアルタイムエンタープライズ可観測プラットフォームに裏打ちされた Lambda 関数の変更不要で低レイテンシーのトレースを提供します。
  • Imperva サーバーレスプロテクションは 、サーバーレスコンピューティング環境における誤った構成アプリやコードレベルのセキュリティリスクによって生じる脆弱性から組織を保護します。Imperva 拡張機能を使用すると、コードを変更することなく、サーバーレスアプリケーションの DevOps プロセスに追加のセキュリティを容易に組み込むことができ、市場投入までの時間を短縮できます。
  • Lumigo は、サーバーレスおよびマイクロサービスアプリケーションの監視および監視プラットフォームを提供します。Lumigo 拡張機能は、新しい Lumigo Lambda Profiler により、CPU、メモリ、ネットワークメトリックなどの関数リソースの内訳を確認できます。拡張機能を使用すると、Lambda の実行時間とコストの削減、ボトルネックの修正、効率の向上を実現するための実用的な洞察を得ることができます。
  • Check Point CloudGuard は、サーバーレスアプリケーションに完全なライフサイクルセキュリティを提供します。CloudGuard 拡張機能は、Function Self Protection データ集約をアウトオブプロセス拡張として有効にし、アプリケーションレイヤー攻撃の検知とアラート機能を提供します。
  • New Relic は、Lambda 関数を効率的に監視し、トラブルシューティングし、最適化します。New Relic の拡張機能を使用すると、Lambda サービスプラットフォームのログを New Relic の統合可観測プラットフォームに直接送信できるため、最小限のレイテンシーとコストでデータをすばやく視覚化できます。
  • Thundra は、サーバーレス、コンテナ、および仮想マシン (VM) ワークロード用の、アプリケーションデバッグ、監視機能、およびセキュリティプラットフォームを提供します。Thundra 拡張機能は Thundra エージェントに非同期テレメトリレポート機能を追加し、ネットワーク遅延を取り除きます。
  • Splunk は、大規模なフルスタックのリアルタイム可視化を実現するエンタープライズグレードのクラウドモニタリングソリューションを提供します。Splunk 拡張機能は、最小限のオーバーヘッドで高分解能の可観測性データを収集するために、ランタイムに依存しないシンプルなインターフェイスを提供します。Splunk Observability ソリューションにより、サーバーレスアプリケーションのパフォーマンスとコストを監視、管理、最適化できます。
  • Sentry の拡張機能により、デベロッパーはコードの健全性を監視できます。エラー追跡からパフォーマンス監視まで、デベロッパーは、コードを変更することなく、問題をより明確に捉え、より迅速に解決し、アプリケーションの正常性について継続的に情報を得ることができます。
  • Site24x7 は、DevOps および IT 運用のためのパフォーマンス監視ソリューションを提供します。Site24x7 拡張機能により、Lambda 関数のリアルタイム観測が可能になります。これにより、重要な Lambda メトリックと関数の実行ログを監視し、実行時間とパフォーマンスを最適化できます。
  • Sumo Logic 拡張機能を使用すると、AWS Lambda を使用して、ミッションクリティカルなアプリケーションの正常性とパフォーマンスを瞬時に可視化できます。この拡張と Sumo Logic の継続的なインテリジェンスプラットフォームを使用すると、関数、プラットフォーム、拡張ログを分析し、エラーや例外をすばやく特定して修正することで、Lambda 関数が期待どおりに実行されていることを確認できます。

AWS サービスの Lambda 拡張機能は次のとおりです。

  • AWS AppConfig により、実行時にアプリケーション設定を管理、保存し、ホストに安全にデプロイできます。AWS AppConfig 拡張機能は、Lambda と AWS AppConfig をシームレスに統合します。Lambda 関数は、外部設定に、迅速かつ簡単にアクセスできます。デベロッパーは、堅牢な検証機能を使用して、Lambda 関数の設定を安全に動的に変更できるようになりました。
  • Amazon CodeGuru Profiler は、アプリケーションの最もコストのかかるコードラインを特定することで、デベロッパーがアプリケーションのパフォーマンスを向上させ、コストを削減するのに役立ちます。コスト削減のためにコードを改善するための推奨事項が記載されています。Lambda 統合により、コードを変更したり、パッケージを再デプロイする必要がなくなります。
  • Amazon CloudWatch Lambda Insights を使用することで、Lambda 関数を効率的に監視、トラブルシューティング、最適化することができます。Lambda Insights 拡張機能は、詳細なコンピューティングパフォーマンスメトリック、エラー、およびログの、収集、視覚化、調査を簡素化します。パフォーマンスの問題をより簡単に分離し、関連づけることで、Lambda 環境を最適化できます。
  • OpenTelemetry 用 AWS Distro は、OpenTelemetry プロジェクト用の、安全で実稼働に対応している、AWS がサポートするディストリビューションです。Lambda 拡張機能は OpenTelemetry コレクタを実行し、関数が AWS X-ray などの AWS モニタリングサービス、および OTLP エクスポータを使用して OpenTelemetry Protocol (OTLP) をサポートする Honeycomb や Lightstep などの宛先に、トレースデータを送信できるようにします。

Lambda 拡張機能の使用を開始するには、提供されたリンクから拡張機能をインストールしてください。

留意点
ここで留意すべきことがいくつかあります。

料金: 拡張機能は Lambda 関数と同じ課金モデルを共有し、Lambda ライフサイクルの全フェーズで使用された計算時間に対して課金されます。関数呼び出しの場合、処理されたリクエストと、コードと拡張機能の実行に使用された 1 ミリ秒単位の総計算時間に対して支払います。拡張機能の請求の詳細については、Lambda の FAQ ページをご覧ください 。

パフォーマンス: Lambda 拡張機能は、CPU、メモリ、ストレージなどのリソースを関数と共有するため、そして拡張機能が関数コードの前に初期化されるため、関数のパフォーマンスに影響を与える可能性があります。例えば、拡張機能が計算負荷の高い操作を実行する場合、エクステンションと関数コードが同じ CPU リソースを共有しているため、関数の実行時間が長くなることがあります。

Lambda では、メモリ設定に基づいて比例する CPU パワーが割り当てられるため、同じ CPU リソースで競合するプロセスが増え、低いメモリ設定での実行と初期化時間が長くなることがあります。postRuntimeExecutionDuration などの CloudWatch メトリックスを利用して、関数の実行後の拡張に要する余分な時間を測定し、 maxMemoryUSed を利用して使用メモリの増加を測定できます。

今すぐ利用可能です
GA の一部として発表されたパフォーマンスの改善は、現在、米国東部 (バージニア北部) ヨーロッパ (アイルランド)およびヨーロッパ (ミラノ)リージョンにあります。

独自の拡張機能を作成することもできます。拡張機能の構築方法については、AWS Lambda デベロッパーガイドの Lambda 拡張機能 API を参照してください。AWS Lambda の AWS フォーラムまたは通常の AWS サポート連絡先を通じてフィードバックを送信できます。

Channy