この記事は、AppDynamics のプリンシパル プリセールス エンジニアである Peter Holditch によるブログ「AppDynamics Provides Comprehensive Observability through Serverless APM for AWS Lambda」(2019/08/06)の抄訳です。
概要
AWS Lambda アプリケーションと Java のマイクロサービスのインストルメンテーションをサポートする AppDynamics のサーバーレス APM が、AWS マーケットプレイスを通じて SaaS のお客様にもご利用いただけるようになりました。
サーバーレス コンピューティングは、クラウド運用モデルの変革に乗じてクラウドの世界に登場しました。そしてクラウドと同様の従量制モデルが、サーバーレス コンピューティングにも導入されました。簡単に言えば、コードを実行しなければ料金が発生しません。
Amazon のサーバーレス コンピューティング サービスである AWS Lambda は、2014 年の登場以来、爆発的な成長を遂げてきました。Lambda の導入が増えるにつれ、こうしたサーバーレス環境で実行されたアプリケーションコードを測定するツールへの需要も急激に増加しています。
サーバーレス コンピューティングを利用する理由
サーバーレスベースのモデルでは、将来の資金予算を確保する必要がありません。これは、多数の CIO に受け入れられている動的投資にもマッチします。他にも、サーバーレス コンピューティングの料金は同じサービスレベルの EC2 料金よりも一桁少ないため、年ごとの予算サイクルを採用している組織にとってはコストの予測可能性が向上するメリットもあります。
サーバーレスのビジネスモデルが確立された今、「従来のコンピューティングはもはや古い」と断言できるでしょうか?残念ながら、それほど単純な話はめったにありません。現実的に言って、サーバーレス技術によって試行錯誤で実現してきたイノベーションは単独では存在できません。ダイナミックな投資モデル(従量課金モデル)が導入されても、少なくとも初期においては、既存のコア機能(従来モデル)の上に構築される傾向があるからです。
これは企業・官公庁のお客様の間で一般的に見受けられます。しかし AWS Lambda を採用すれば、新たな Lambda ベースのオープン API(オープンバンキング API など)を使ったフロントエンドのコアシステムや、オンラインストアアプリを含むマイクロサービスといったイノベーションによって、ユーザーエクスペリエンスを劇的に進化させられます。
こうした背景により、Lambda ベースの APM 監視製品が待ち望まれていました。
そこで AppDynamics では、AWS Lambda 関数と他のアプリケーションの両方に対して、パフォーマンスを包括的に監視できる製品を発表しました。当社のフロー マップは、アプリケーションサービス間の関係を自動的にマッピングし、サーバーレス アプリケーションがビジネスパフォーマンスとアプリケーション パフォーマンスに与える影響をより詳しく可視化します。
サーバーレス APM のメリット
サーバーレス コンピューティングは一時的なものですが、これには独自の問題もあります。環境特性(スロットリングなど)への依存関係や、複雑になりがちな再試行動作が、サーバーレス機能の監視を困難にしています。そこに既存システムでの避けられない依存関係が加わるため、問題がさらに悪化します。
過去にもご説明しましたが、AWS Lambda 関数によって実現すると考えられてきたダイナミックな拡張性は、大半が出来すぎた話です。エンドツーエンドシステムの拡張性は、最も狭い箇所がボトルネックになるからです。つまり、サーバーレスコンポーネントの拡張性がどれほど高くても、システム全体の技術的なリスクを管理するにはエンドツーエンドの可視化が不可欠なのです。
AWS Lambda 向けサーバーレス APM は、さまざまな点で組織にメリットをもたらします。
- 消費ベースの料金:AWS Lambda の従量課金制(PAYG)料金モデルを維持する唯一の方法は、サーバーレス APM でも同じモデルを使うことです。そこで、AWS Lambda 向けサーバーレス APM にもまったく同じモデルを採用しました。
- ユニファイドモニタリング:1 つのプラットフォーム内でエンドツーエンドの可視性を統合する機能です。さまざまなサービス間でのアプリケーションコールを詳細に可視化できます。他の APM ベンダーとは異なり、当社のエージェントは自動的にサービスフローマップを作成し、関連する指標をキャプチャします。より詳細な分析のために、アップストリームコールとダウンストリームコールをキャプチャします。
AWS Lambda 向けサーバーレス APM を購入されるお客様が評価するのは次の点です。
- 自社システムのユーザエクスペリエンスはどのようなものか。エクスペリエンスの質が低い場合、その根本原因は何か。ユーザエクスペリエンスは AWS Lambda と非 Lambda 要素(エンドツーエンド ソリューション)の両方に依存します。
- 新しい AWS Lambda コンポーネントが既存のバックエンドシステムに与える影響はどのようなものか。
- アプリケーション展開コストへの影響を最小化:AWS Lambda の強みはその経済性です。AWS Lambda 関数は、Amazon EC2 インスタンスにアプリケーションを展開するよりも低いコストで使用できます(コストには、データ収集・送信コストと、APM ベンダーライセンスまたはサブスクリプションコストが含まれます)。
- 問題解決時間を短縮:履歴・ログ分析に依存することなく、従来よりも迅速に問題の特定と修復ができます。アプリケーションスタックのすべてのレイヤに対して自動インストルメンテーションを活用します。
- 完全なデータ再現性:サービスの正常性を監視するために使用する指標データは、サンプルベースのリクエストに基づかないことが重要です。どのユーザエクスペリエンスの監視でも言えることですが、重要なのはパフォーマンスの外れ値を把握することです。これはランダムなサンプリングでは不可能です。
当社ではハイブリッド アプリケーション システムのエンドツーエンドのインストルメンテーションを最も重視しているため、AWS Lambda 向けサーバーレス APM では Amazon CloudWatch ログのようなクラウド限定の監視ソリューションを使いません。その代わりに、アプリケーションレイヤでのトランザクションをシームレスにトレースします。これには、サーバーレス APM 環境におけるデータの保管・取得でクラウドの追加コストが発生することを回避できるという、別のメリットもあります。
AWS Lambda 向けサーバーレス APM がついに登場
このたび、AWS Lambda アプリケーションと Java のマイクロサービスのインストルメンテーションをサポートする AppDynamics の サーバーレス APM が、SaaS の APM をお使いのお客様にもサブスクリプション契約いただけるようになりました。今後数ヵ月のうちに、Node.js 関数のサーバーレス APM ベータ プログラムを公開する予定です。
AppDynamics で AWS Lambda 関数をセットアップする方法
AppDynamics の既存ユーザであれば、次の簡単な手順に従うだけで、アプリケーションフローマップに Java AWS Lambda 関数を追加できます。
- AWS マーケットプレイスで Lambda 監視サービスに登録します。
- AppDynamics トレーサを使って Lambda コードとすべてのアウトバウンド コールをインストルメンテーションします。
- システムを介してワークロードを実行します。
- コントローラからフローマップを確認します。以下のフローマップの例では、AWS Lambda システムへのトラフィックがアップストリームの Java アプリケーションから発信されています。サーバーレスランタイムが自動的に一時ノードのセットを管理するため、サーバーレス階層のノード数は表示されません。
新製品により、従来のコンポーネントからサーバーレスコンポーネントに至るまで、使い慣れた AppDynamics 製品を既存アーキテクチャでご利用いただけます。
AWS マーケットプレイスとコンピテンシー
AppDynamics は、AWS、その他の AWS コンピテンシー、クラウド監視ソリューションの分野で急速に成長を遂げ、お客様の成功を後押ししています。フルスタックのパフォーマンス監視を行っている注目のベンダーとして、AWS マーケットプレイスで取り上げられました。
また、既存の AWS モバイルコンピテンシーに加えて新たに 2 つの AWS コンピテンシーを獲得しました。AppDynamics ならではの強みは、AWS パートナーネットワーク(APN)メンバーとして専門性の高い技術力を提供できること、そして監視とパフォーマンスの分野で数々のお客様を成功に導いた実績があることです。
最近新たに取得した AWS コンピテンシーは次の 2 つです。
- AWS 移行コンピテンシー:AppDynamics は、検出、計画、移行、運用を含む複雑な AWS 移行プロジェクトのすべてのフェーズを通じて、企業が AWS に正常に移行できるよう必要なソリューションと専門知識を提供します。
- AWS DevOps コンピテンシー:AppDynamics は、継続的インテグレーションと継続的デリバリ(CI/CD)を実装し、AWS の構成管理ツールを使ったインフラのプロビジョニングと管理を自動化するソリューションと豊富なノウハウを提供します。
多くの組織が拡張性と俊敏性を求めて次々とクラウドに移行していますが、クラウド環境でパフォーマンスを細部まで可視化するのは難しいことです。複雑で変化し続けるアプリケーションとインフラを管理、監視、最適化するには、クラウドベースのすべてのリソースを可視化できる、包括的かつフルスタックの監視ソリューションが必要です。
NodeJS 版(ベータ)
AWS Lambda で NodeJS を実行されているお客様に朗報です。Java がサポートされたことに加え、NodeJS のサポートもベータテスト中です。簡単な登録フォームにご記入のうえ、ぜひご参加ください。AppDynamics の担当者から、AWS Lambda 向けサーバーレス APM の NodeJS 版ベータプログラムの利用方法についてご連絡いたします。
今すぐ登録することで、AWS Lambda マイクロサービスを介した、エンドツーエンドなビジネス トランザクションのトレーシング機能をご体験ください。また、AppDynamics が AWS アプリケーションの移行を加速させ、クラウドネイティブのアーキテクチャ導入で 300% の成長を達成できた理由についても、ぜひお読みください。