【てくさぽBLOG】InstanaとTurbonomicを連携したリソース最適化検証
InstanaとTurbonomicの概要と 連携させることで可能になること
Instanaは、アプリケーションモニタリングの分野で高い評価を得ているツールです。 アプリケーション呼び出し時のコールリスエストのトレーシングやCPU、メモリといったメトリクス情報収集を通じて、アプリケーション・インフラの状況をリアルタイムで可視化します。特に自動化された監視設定や障害発生した際の関連情報を分析し一目で原因を特定できます。 Turbonomicは、インフラリソースおよびアプリケーションの効率的な配置・利用を最適化するプラットフォームです。 リソースの過剰利用や不足をリアルタイムで把握し、必要な改善アクションを推奨または自動実行します。 詳細な機能についてはそれぞれBLOGで紹介しておりますので下記をご確認ください。連携させることで得られる効果
InstanaとTurbonomicを連携させることで、以下の効果が得られます。- リアルタイムモニタリングの強化: Instanaを通して詳細なリソース使用状況を把握し、Turbonomicがそれを基に適切なリソース割当を推奨。
- 自動リソース最適化: 必要に応じてTurbonomicが推奨するアクションをInstanaから直接実行可能。
- アプリケーションとインフラの統合可視化: 両製品の連携により、アプリケーションのパフォーマンスだけでなく、それを支えるインフラ(仮想マシン、コンテナ、クラウド)の状態までを統合的に可視化できます。
検証内容
今回の検証では、以下の環境・シナリオを設定しました。環境構成
- Turbonomic: IBM Cloudのベアメタルサーバ(Hyper-V)上にデプロイ。 本環境で使用するAWSアカウントをターゲット追加。
- Instana: SaaS形式で利用。
- 監視対象: AWS EC2インスタンスA(instana03、インスタンスタイプ:m7a.medium)にInstana agent導入。
- アプリケーション: AWS EC2インスタンスAにサンプルwebアプリケーションのRobot Shopを導入。 Instana上ではInstana03_robot-shopとして登録。
- 負荷ツール: AWS EC2インスタンスBにJMeterを導入。構成については下記の通り。

検証内容
- EC2インスタンスBのJmeterからEC2インスタンスA上のアプリケーションへ同時多発webアクセスを行いリソース使用率の負荷をかける。 負荷は下記図の通りスレッド数5000、ramp-up期間は1秒、持続時間は3600で設定

- Turbonomicがリソース使用率を検知し、インスタンスタイプ変更のアクションが推奨されることを確認する。
- Instanaで推奨されるアクションを実行し、実際にEC2インスタンスAのリソースが拡張されるかを確認をする。
- インスタンスタイプ変更後も同量の負荷をかけ続けリソース使用率が問題ないか確認する。
検証結果
検証開始前のTurbonomicの状況です。 左側の仮想マシンの箇所は緑となっておりインスタンスタイプは赤枠で囲われているm7a.mediumとなっています。







- 負荷シミュレーション時、EC2インスタンスAのCPU使用率やメモリ使用率の上昇を可視化。
- InstanaにTurbonomicの推奨アクションが表示され、Instana上でアクションを実行することでインスタンスタイプが変更され、負荷が下がる過程を可視化。
- インスタンスタイプ変更後も同量の負荷をかけつづけリソース使用率が問題ないことを確認。
苦労した点
今回の検証を進める中で以下のような課題に直面しました。- TurbonomicがデプロイされているISOイメージから仮想サーバを作成する方式なのですが、Hyper-V用ISOイメージがなく、VMware用のISOイメージから作成しようとしても失敗したためIBMサポートへ問い合わせを行いました。
- 仮想サーバをデプロイしたあとTurbonomicコンソールへアクセスしようとしたところ、Hyper-V内のネットワーク設定が誤っておりインターネットからアクセスができませんでした。
- TurbonomicからAWSアカウントのターゲット追加する際にDNS設定が正しく設定されていなかったため、正常に追加登録が完了しませんでした。
- InstanaとTurbonomicをスムーズに連携させるための設定確認とチューニングに時間を要しました。特にInstana側からTurbonomic側への設定追加の際に、設定項目がドキュメントからは読み取れず、設定内容が間違っていたためサポートへ問い合わせを行い解決しました。
- 負荷テストを行う際に最初はWebアプリケーションに付随するスクリプトで実施していましたが、インスタンスタイプ変更に伴う再起動が発生するためJMeterで実行するワークロード設計に工夫が必要でした。
- Turbonomic上で推奨アクションがあらかじめ表示されている場合、負荷をかけることで推奨アクションが更新されると想定していましたが、更新されなかったため想定していた挙動となりませんでした。
- インスタンスAに負荷を与えても推奨アクションが表示されなかったため、ポリシーの設定変更に時間を要した。特に観測期間を短くし、積極性をあげることで短い期間内での負荷に敏感になるように設定しました。
- 観測期間の最低値が7日間のため、一度推奨アクションが表示されるまで負荷を掛け続けインスタンスタイプを変更しないでおくと、推奨アクションが継続して表示されてしまい、推奨アクションが表示されなくなるまで時間がかかってしまいました。