1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【判断体系】New Relicで「根拠をもって断る」クラウド拡張。 ~APM × インフラ相関から導き出す、真のコスト適正化~

Last updated at Posted at 2025-12-31

1. はじめに|「削る」前に「判断する」という選択

クラウドコスト最適化というと、「ログを減らす」「メトリクス保持期間を短くする」といった New Relic 自体のコスト削減 に目が向きがちだ。

もちろんそれも重要だが、アーキテクトの視点で見れば、真に削減すべきコスト(本丸) は別にある。

それは、「拡張すべきでないタイミングで拡張してしまう」クラウドリソースの費用だ。

システムが遅いと感じた時、アラートが鳴った時、「念のため」という言葉が出た瞬間。
その判断が積み重なることで、AWS / GCP の請求額は 静かに、しかし確実に 膨れ上がっていく。

本記事では、New Relic を単なる「監視ツール」ではなく、
「投資判断を支える意思決定基盤」 として再定義し、
「根拠をもって拡張を断るための判断体系」 を提示する。


2. 背景|なぜコストは「合理的に」増え続けるのか

EC サイトや業務システムの運用現場では、次のような光景が日常的に発生する。

  • アクセス増に備えて、事前にスケールアウトする
  • 遅延が疑わしいので、とりあえずインスタンスタイプを上げる
  • 障害が怖いので、繁忙期が過ぎても設定を戻さない

これらは 「可用性を守る」という意味では合理的(正義) だ。
しかし、「因果関係の検証」 が欠落している点において、コスト戦略としては致命的である。

「見えない無駄」の正体
クラウドコストの高騰は、劇的な障害やトラフィック爆増だけで起きるのではない。
「判断のたびに積み上げられた過剰な安全マージン」 が、いつの間にか標準構成として定着することで発生する。

特に Magento のような複雑な構成(App + DB + Redis + Search)では、
直感だけで真のボトルネックを特定することはほぼ不可能 だ。

「重い」と感じる → 「サーバーを増やす」 → 「(なんとなく)直った気がする」

この 負の成功体験 を断ち切るには、
経験や勘ではなく、データに基づいた冷徹な判断プロセス が不可欠となる。


3. 中心思想|New Relic を「判断体系」として使う

New Relic の真価は、単体の CPU 使用率を見ることではない。
「アプリケーション(APM)」と「インフラ(Infrastructure)」を、同一時間軸で重ねて観測できる点 にある。

本記事では、以下の 3 層チェック を「判断体系」として定義する。

拡張可否の判断ステップ

  1. APM(事実確認)
    • スループットは増えているか? レスポンスは本当に悪化しているか?
  2. インフラ(リソース確認)
    • CPU / メモリ / I/O は本当に枯渇しているか?
  3. 相関確認(因果の特定)
    • 性能劣化とリソース使用率は「連動」しているか?

図1:判断体系の概念図

ここが重要
CPU 使用率が低いこと自体は問題ではない。
「APM が悪化しているのにインフラが余裕な状態」を見逃し、無意味な拡張を行うこと が最大の問題である。

この体系を用いれば、
「今、拡張すべきか」「それは無意味か」を、Yes / No で即答 できる。


4. 実践|Magento on AWS 構成での判断フロー適用例

ここからは、前章で定義した 判断体系 を、
AWS 上に構築された Magento 推奨構成ベースの EC サイト に適用する。

対象システム構成(AWS × Magento)

本記事で想定する構成は、エンタープライズ領域で一般的な以下の構成であり、
特定の企業や環境に依存しない汎用モデル である。

  • Application: Amazon ECS(Fargate)上の PHP(Magento)コンテナ
  • Database: Amazon Aurora MySQL
  • Cache: Amazon ElastiCache for Redis
  • Search: Amazon OpenSearch Service

本構成は、Adobe Commerce(Magento)の公式システム要件に準拠している。

図2:AWS上のMagento参照アーキテクチャ図


想定シナリオ|正体不明の「重い」

  • 特定時間帯に「ページ表示が遅い」という報告が上がる
  • New Relic APM 上でもレスポンスタイムのスパイク(急増)が確認される
  • 現場では「とりあえずスケールアウトしよう」という声が上がる

この瞬間こそ、判断体系の出番である。


Step 1|APM で「負荷の実在」を確認する

最初に確認すべきはインフラではない。
「ユーザー体験が本当に悪化しているか」 という事実だ。

図3:APMのThroughputとResponse Time

解説: 左のグラフ(Throughput)を見ると、午前7時から9時にかけてリクエスト数が約6倍に急増している。
一方、右のグラフ(Response Time)を確認すると、レスポンスタイムの悪化(スパイク)は確認できるものの、スループットの激増と比較すれば、システム全体の破綻には至っていない

この段階で、「負荷増に伴うレスポンス変動が発生している(が、ダウンはしていない)」 という事実を確定させる。


Step 2|ECS のリソース枯渇を確認する

次に、Step 1 と 同一時間帯 の ECS リソースを確認する。

図4:ECS CPU / Memory 使用率

解説: APM上ではトラフィックが急増していたが、CPU使用率は 20% 以下 で推移している。

ここから導かれる事実は一つだ。
「アプリケーションは悲鳴を上げているが、サーバーは暇を持て余している」

この時点で、Compute(ECS)の拡張は無意味 であることが確定する。


Step 3|Aurora / Redis / OpenSearch の横断確認

「Webサーバーでないならバックエンドか?」を検証する。

図5:DB・ミドルウェアのメトリクス

解説:

  • Redis (左上): CPU使用率は数%。Eviction(メモリ不足)も皆無。
  • RDS (左下): トラフィック増に追従しているが、CPU 50% 以下と健全。
  • OpenSearch (右下): CPU 1桁%台。検索負荷も問題ない。

いずれのレイヤーにも、拡張が必要なボトルネック(飽和)は存在しない。


Step 4|判断|クラウド拡張を「断る」

以上のファクトを整理し、結論を出す。

  1. APM: 性能変動あり(事実)
  2. インフラ: 全レイヤーでリソース余裕あり(事実)
  3. 相関: なし(No Correlation)

この性能問題は、クラウド拡張(金)では解決しない。

したがって、SRE として下すべき正しい判断は、
「クラウド拡張を行わない(Reject)」 である。

Next Action
拡張を断ることは、放置することではない。
問題は「インフラ容量」ではないため、次のアクションは APM の Transaction Trace を用いた 「アプリケーション内部(コード・クエリ・ロック)」の分析 へと舵を切る。


5. 判断の核心|時間軸で見る「相関」の有無

最終的な意思決定を支えるのは、単一のグラフではない。
同一時間軸での相関(Correlation) である。

図6:APM × インフラ × ミドルウェア 相関Dashboard

この図の 青い点線枠 に注目してほしい。

  • 上段(APM): トラフィック(黄色)は階段状に急増している。
  • 中・下段(Infra): しかし、その直下の CPU やメモリは 驚くほど無反応(フラット) だ。

相関が存在しない以上、拡張は「対症療法」にすらならない。

この可視化こそが、ステークホルダーに対して「拡張しない」と説明するための最強の根拠となる。

補足|「拡張すべき」ケースも、この判断体系は見逃さない

本記事では「拡張を断る」判断を中心に解説してきたが、
本判断体系は 拡張を否定するものではない

例えば、APM の性能劣化とインフラリソースの枯渇が
同一時間軸で明確に相関する場合 は、話が別だ。

  • ECS: CPU / Memory が上限(Limit)に張り付いている
  • Database: CPU / I/O Wait がトラフィック増と同時に急増している
  • Middleware: Redis Eviction や OpenSearch JVM Pressure が発生している

この相関が確認できた場合、クラウド拡張は
「対症療法」ではなく、「合理的な解決策(正当な投資)」となる

重要なのは、「拡張するか/しないか」という結果ではない。
「相関を根拠に、その判断を説明できるか」 である。


6. 高負荷イベントにおける判断モデル(Scenario)

本章で示すのは、新たな判断軸ではない。
これまで解説してきた 「判断体系」 を、
最も失敗しやすい高負荷イベント(大規模セール・キャンペーン) に適用した場合の、実践的な運用モデルである。

本判断体系が真価を発揮するのは、平常時だけではない。
エンジニアが最もプレッシャーを感じる「負荷急増時」こそ、この判断の羅針盤が必要となる。

ここでは、イベント運用における 「安定性」と「コスト」のバランス を崩さないための考え方を整理する。

事前|「恐怖」ではなく「実績」で積むマージン

イベント前のサイジングにおいて、最もコストを跳ね上げる要因は 「恐怖(Fear)」 である。
「落ちたらどうしよう」という不安が、根拠のない「念のための10倍構成」を生む。

  • Bad: 不安だから、とりあえず過去最大構成のさらに倍を用意する(根拠なし)
  • Good: New Relic の過去データ(Baseline)に基づき、過去のピークトラフィックに対して「一定の安全係数」を加味したサイジングを行う。(例:直近ピーク実績に対し 1.x 倍 程度のマージン)

過剰な保険は、利益を食いつぶす。
APM の実績データがあれば、必要なマージンは数学的に算出できる。

事中|迷いを断ち切る「即断即決」

アクセスが集中し、レスポンスが悪化したその瞬間。
現場がパニックになりかける時こそ、判断体系(3層チェック)を回す。

  1. APM: 本当にユーザー体験が悪化しているか?(Fact)
  2. Infra: リソースは枯渇しているか?(Fact)
  3. 相関: 両者は連動しているか?(Fact)

このフローを徹底することで、
「今は拡張すべきか/すべきでないか」を、会議なしで即断 できる。

迷っている間にログを漁るのではなく、ダッシュボードの「形」を見て 1分で判断する。
これが SRE の仕事である。

事後|「様子見」という名の浪費を排除する

イベント終了後、多くの現場で起きるのが 「コストの垂れ流し」 だ。
「念のため明日の朝までこのままにしておこう」という判断は、一見安全に見えて、実は最もコスト効率が悪い。

  • レスポンスが平常値に戻った
  • リソース使用率が低下した

この 2 点が確認できた時点で、即座にスケールイン(縮退) を行う。

「一晩の様子見」のコスト
m5.24xlarge クラスのクラスタを一晩(12時間)余分に放置するコストは、決して安くない。
「安全確認」ではなく「即時回収」こそが、利益を守る最後のアクションである。


7. 価値の本質|削減額ではなく「回避額(Cost Avoidance)」

本判断体系がもたらす価値は、Cost Reduction(削減) ではなく、
Cost Avoidance(回避) にある。

負荷が予測可能で、システムが安定している前提においては、

潜在的なクラウドコスト増加の 20〜30% を回避できる可能性がある。

※ 本数値は、以下のシナリオを前提とした経験則に基づく試算である:

  • ピーク維持: ピーク対応の ECS タスク数やインスタンスサイズが、通常時にも維持されるケース
  • 安全マージン: 平均利用率とピーク利用率の乖離(過剰なバッファの積み上がり)
  • 期間要因: 不要なスケールアウトやスペック変更が、一定期間継続した場合

つまり、「拡張してしまった後、設定を戻さない(戻せない)」時間が長いほど、この回避効果は大きくなる。

これは、New Relic の利用コストを十分に上回る価値だ。


8. まとめ|「拡張する勇気」より「断る根拠」

本記事で紹介したのは、テクニック集ではない。
クラウドコストと向き合うための判断体系 である。

  • 感覚ではなく、事実で判断する
  • 単体指標ではなく、相関で判断する
  • 拡張する前に、「断る理由」を探す

New Relic の本当の価値は、
「お金を使わない判断」を、技術的に正当化できる点 にある。

クラウドコスト最適化とは、削ることではない。
正しく判断すること である。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?