New Relic 製品の紹介 (プランや価格帯など）2017年度版

今年もはじまりました New Relic Advent Calendar 2017 一日目。

デジカの宮澤です。相変わらず今年も参加者少なそうなんで悲しい限り。

New Relic に関する基本的なことは、[去年](https://qiita.com/advent-calendar/2016/newrelic)と[一昨年](https://qiita.com/advent-calendar/2015/newrelic)にだいたい書いたので、New Relic に興味がある人はそちらも見てもらえると参考になるかと。2年前とかの記事でも基本今も使える内容ばかりだと思う。

初日の今回は、現時点(2017年12月1日)における New Relic が提供している製品と提供しているプランや大まなか価格帯を紹介します。New Reilc は結構、価格帯がよくわからんと言われるので、ある程度目安になればいいかと。(詳細な金額は、正式に見積もり依頼したほうがいいけど、ある程度大きい金額でなければだいたいは合うと思う)

注: ここで紹介する金額に関しては、[公式サイト](https://newrelic.com)に載っている情報だけを元に書いている。また、金額も 2017年12月1日時点のため、今後変更されることもあるので、正式な金額を知りたい方は、公式サイトをみるか、見積もりを取ることをオススメします。

では、本題に入っていきます。

----

New Relic はアプリケーションパフォーマンス監視製品とだけ認識されているイメージがずーっとあるけど、そんなことはなくて、ウェブのパフォーマンスに関する全領域をカバーする製品群を提供しています。

## New Relic が提供する6つの製品

2017年12月時点で、以下の6つの製品を提供してる。

各製品ごとの課金であり、課金の計算方法やプランは、製品ごとに異なる。

| 製品名 | 概要 | 領域 | 提供プラン | 課金単位 |
| ------ | ----- | ---- | ----- | ----- |
| [New Relic APM](https://newrelic.com/application-monitoring) | アプリケーションパフォーマンス監視製品。サーバーサイドアプリのパフォーマンス(トランザクション単位の処理時間やスループット）がわかる。また、細かいとこだと SQL まで確認できて、その SQL にどれくらいの時間が掛かっているかもわかる。 | サーバーアプリ | [Lite (無料)、Essentials(有料), PRO (有料)] (https://newrelic.com/application-monitoring/pricing) | ホスト/インスタンス |
| [New Relic Browser](https://newrelic.com/browser-monitoring) | 実際のユーザーのブラウザ上のパフォーマンスを計測製品。リアルユーザー監視と言われるもの。レンダリングや DOM 処理の時間など | フロントエンド | [Lite(無料)、PRO (有料)](https://newrelic.com/browser-monitoring/pricing) | ページビュー |
| [New Relic Synthetics](https://newrelic.com/synthetics) | 外形監視、死活監視と呼ばれる製品。New Relic が用意する世界中のサーバーから定期的にリクエストを送りそのパフォーマンスを計測できる。Selenium を使えるので柔軟な動作の監視も可能。 | フロントエンド | [Lite(無料)、PRO (有料)]((https://newrelic.com/synthetics/pricing)) | チェック数 |
| [New Relic Mobile](https://newrelic.com/mobile-monitoring) | モバイルのネイティブアプリ(iOS/Android)のパフォーマンスやクラッシュ分析製品。 | フロントエンド | [Lite(無料)、Enterprise (有料)](https://newrelic.com/mobile-monitoring/pricing) | 月間アクティブユーザー数 |
| [New Relic Infrastructure](https://newrelic.com/infrastructure) | 一般的なサーバー監視製品 (CPUやメモリ、ディスク容量など）。サーバー上の設定変更履歴やインストール済みのパッケージ情報を簡単に調べられたりもする。また、AWS や MySQL などのクラウドやミドルウェア周りのパフォーマンスも監視できる。 | インフラ | [Essentials(有料)、PRO (有料)](https://newrelic.com/infrastructure/pricing) | インスタンス |
| [New Relic Insights](https://newrelic.com/insights) | 上記の各製品で集めた情報を一括して表示できるダッシュボード製品。各製品の情報をより細かく分析したい場合に柔軟な条件や期間で分析ができる。各製品の有料版を使っている場合は、無料で利用できる。 | ダッシュボード | 条件付き無料、有料 | イベント数 |

メモ: 上の表のリンクは、公式サイトに貼っているので、参考まで。

また、全商品、無料トライアル(14日から30日。製品により異なる)があるので、気になる方はまずは、使ってみることをおすすめ。

### 最近(11月14日)に提供を終了した製品と機能

以前は、New Relic Servers という無料で使えるサーバー監視製品があったが、2017年11月14日にサービス停止しました。既存の有料ユーザーのみ 2018年5月15日まで使える。

同じく、レガシーアラートと呼ばれる APM の無料版で使えたアラートもサービス停止となった。

## アラートについて

監視と切ってもきれない重要な要素であるアラート機能は、New Relic Alerts で提供している。Alerts は中央集権的なサービスで、ここで各製品のアラートの設定を行う。例外として、Infrastructure だけは、それ自体の UI でやる。

各製品の有料ユーザーは、New Relic Alerts が利用できる。無料ユーザーでも使えるレガシーアラート機能があったが、現時点では利用できない。そのため、無料ユーザーにはアラートが使えなということになるが、無料では使えないが、APM の有料版を使わなくても使えるようになるハックっぽい手はある。(これは New Relic 自身で言っていることなので、不正な手とかではない）

この有料ユーザーという定義がちょっとおもしろくて、例えば、New Relic APM の無料版と New Relic Infrastructure の有料版を使っている場合、New Relic APM でもアラートが使える。つまり、New Relic 製品の一つでも有料版を使っていれば、他の製品でもアラートが使えるようになる。APM は無料版は使いたいけど、アラートも使いたいという方は、New Relic Infrastructure の有料版を契約すればいいかと。(Infrastructure は数ドルでも利用できる）。

## 各製品の簡単な紹介と価格について

各製品の紹介に入る前に、各製品の価格に共通する見方について説明していこう。

New Relic では、各製品ごとのプランとは別にそれを月契約か年契約かを選択する。例えば、New Relic Browser の場合は、PRO の月契約と PRO の年契約の2つの選択肢がある。年契約の方が金額がだいぶ安い。(その分解約できないリスクはあるが、だいたい半年以上使うなら、年契約の方が安くなるケースが多い）

では、製品ごとにその機能と価格を紹介していく。

## New Relic APM

APM は、サーバーサイドのアプリケーションパフォーマンス監視製品。アプリサーバーにエージェントと呼ばれるライブラリをインストールして、それがデータを収集する仕組み。よって、エージェントをインストールする必要があるだけど、それが今は以下の言語にのみ正式に対応していてる。

- Java, .NET, Ruby, Python, PHP, Nodejs, GO

OS は Windows でも、Linux でもいいけど、Windows サーバーで PHP の方は対応してないみたい。フレームワークなどの対応に関しては、各エージェントの互換性と要件を要確認。

APM は、Lite、Essentials、PRO の3プラン。主な違いは以下の通り。(細かい違いは、[こちら](https://qiita.com/kumatronik/items/245d7392da570f1ccf46)をご覧を。

||  Lite  |  Essential  |  Pro  |
|:-----------|:------------:|:------------:|:------------:|
| データ保持期間 (メトリックデータ) |  1日  |  3日  |  90日  |
| データ保持期間 (イベントデータ) |  1日  |  3日  |  7日  |
| 概要データ見える |  ◯  |  ◯  |  ◯  |
| SQL レベルまで見える |    |  ◯  |  ◯  |
| アラート使える |    |  ◯  |  ◯  |
| 重要なトランザクションの監視 |    |    |  ◯  |
| サービス間の連携マップ |    |    |  ◯  |
| デプロイ時のパフォーマンス追跡 |    |    |  ◯  |

大きな違いは、データが見える期間。機能的には、無料版の Lite は概要レベル。Essentials は、1つのアプリを深掘りして見える。PRO は、複数サービスのパフォーマンスを簡単に確認できたり、アプリに特化した監視が行えるようになる。

前に[どのプランを選ぶべきか](https://qiita.com/drafts/245d7392da570f1ccf46)という記事書いたので、比較が気になる人はその記事も参考になるかと。

### 価格

APM は、非常に考え方のややこしい構成となっている。

以下の３つの組み合わせで値段が決まる。

- 月契約 or 年契約
- Essentials or PRO
- ホスト単位 or CU 単位

Essentials は PRO の半額。

最後の項目がすこし分かり辛いので説明する。

**ホスト単位**

ホスト単位は分かりやすくて、1ホスト xx 円という計算。1アプリを2サーバーで使うなら、2ホストが課金対象。逆に、2アプリを1サーバーの場合は、1サーバー分の値段となる。あくまでホスト単位。

1ホストの値段は以下となる。

- **年契約 x Essentials: 75 USD/月**
- **月契約 x Essentials: 119 USD/月**
- **年契約 x PRO: 149 USD/月**
- **月契約 x PRO: 199 USD/月**

よって、年契約 x PRO で3ホストなら、5,364 USD/年(=3*149*12)。

**CU 単位**

CU は、Comupute Unit の略で、クラウド対応プラン。クラウドを利用している場合(オンプレミスでもいいんだけど）は、こちらのプランの方が安くなるケースが多い。こちらは、サーバーのスペックによって値段が変わる。

CU の計算方法は以下:

`CU = (CPU コア数 + RAM の GB) * 利用時間`

利用時間は、1ヶ月まるまる利用の場合は、750時間で計算する。

例えば、CPU コア:2、RAM: 4G の場合は、(2+4)*750=4500 CU。
その CU に対して、他の選択肢(月契約とかPROとか）ごとに単価があり、それを掛けた金額となる。

CU の月の単価は以下っぽい。

- 年契約:PRO: 0.016666667 USD/CU
- 月契約:PRO: 0.05 USD/CU
- 年契約:Essentials: 0.008333333 USD/CU
- 月契約:Essentials: 0.25 USD/CU

例えば、AWS で、t2.large を 1インスタンス利用する場合は、7500 CU であり、年契約かつ PRO の場合は、125 USD/月(=7500*0.016666667)となる。ホスト単位(149 USD)と比べて安いことが分る。

AWS/Google/Microsoft を使っている方は、簡単に計算できる[シミューレーターが公式サイト](https://newrelic.com/application-monitoring/pricing)にあるので、そこでぽちぽちすれば簡単に CU と料金を知ることができる。また、自分で、CU 数を計算し、上の単価をかければ月当りの値段は出ると思う。

年契約の場合だけ簡単に価格帯を紹介する。

- **年契約 x Essentials: 10 - 100 USD/月 per インスタンス**
- **年契約 x PRO: 20 - 200 USD/月 per インスタンス**

単価みると月契約だとだいたい年契約の3倍くらいの値段となる。

### よくありそうな質問

**Docker 等のコンテナを使った場合の課金について**

Docker 等のコンテナを使っている場合は、コンテナごとに課金対象となるのか？という質問があるが、[公式サイトにも載っている](https://newrelic.com/application-monitoring/pricing#)ようにあくまで、ホスト、インスタンスごとの課金のため、コンテナは課金対象にならない。よって、クラウドの1つのEC2インスタンス上で、コンテナを何個立ち上げていても、課金対象は1インスタンスのみとなる。

**複数プランの併用**
現時点で、New Relic では、1つの New Relic アカウントで複数のプランを併用することはできない。よって、アプリを複数管理する場合に、あるアプリは、PRO、別のアプリは無料版などの使いわけはできない。

## New Relic Browser 

New Relic Browser は、計測用の JS を埋め込み、それが New Relic にデータを送信するという仕組み。

|| Lite  |  Pro  |
|:-----------|:------------:|:------------:|
| データ保持期間 |  1日  |  90日  |
| 概要データ見える |  ◯  |  ◯  |
| セッション単位の細かいパフォーマンスが確認できる |  |  ◯  |
| JS エラーが見える |  |  ◯  |
| SPA のパフォーマンスも確認できる |  |  ◯  |

細かい違いは[こちら](https://qiita.com/kumatronik/items/35f82746d5072001f566)を参照。

### 価格帯

New Relic Browser の課金は月間ページビュー数。Browser は、50万PVまでの金額は載っているけど、それ以上の場合は、問い合わせる感じ。

- **年契約: 50万PV 149 USD/月 から**
- **月契約: 50万PV 199 USD/月 から**


Browser の契約時の注意点としては、New Relic 側で上限などは設定できない。よって、例えば300万PV/月あるサービスの場合、50万PVで契約した場合、50万PVくらいしか New Relic に送らないようするのはユーザー側で制御する必要がある。

## New Relic Synthetics

New Relic Synthetics(シンセティック) は、外形監視、死活監視のサービス。New Relic が用意する世界中のサーバー(20箇所くらい）の指定した箇所から指定した間隔で特定のURL等にリクエストを送り、その結果やパフォーマンスを確認できる。これは、他と違ってエージェントはない。New Relic の UI 上で、ぽちぽちすれば設定できるお手軽サービス。

Synthetics は、4種類の監視方法がある。

- Ping
- Simple Browser
- Scripted Browser
- API Test


Ping は指定した　URL に HTTP HEAD リクエストを飛ばして、そのレスポンスのステータスコードを確認するといるシンプルなもの。

Simple Browser は Ping に似てるけど GET リクエスト飛ばすので、HTML 以外のレスポンスに含まれる CSS/JS/image 等の読み込み時間や処理時間も知ることができる。(New Relib Browser に似ている)

Scripted Browser と API Test は似ていて、対象がページかAPIかの違い。これは URL を指定するのではなく、Selenium 用のJSを用意し(New Relic Synthetics の UI 上で直接書く)、それを定期的に実行するもの。よって、インタラクティブな操作や画面遷移のチェックなどもおこなえる。

|| Lite (無料)  |  Pro (有料)  |
|:-----------|:------------:|:------------:|
| データ保持期間 |  14日  |  13ヶ月  |
| Ping |  ◯  |  ◯  |
| Simple Browser, Scripted Browser, API Test |  |  ◯  |

細かい説明は[こちら](https://qiita.com/kumatronik/items/c542feac77b08c3ca646)を参照。

### 価格帯

New Relic Synthetics は、月のチェック数で課金。

チェック数とは全モニターの(データ送信箇所 x 送信間隔 x 日数)を合計したもの。例えば１つモニター作って、東京とシンガポールから、1時間ごとにチェックの場合の1ヶ月のチェック数は、(2x24x30=)1440チェックとなる。よって、頻度を細かくしたり、場所を増やすと指数的にチェックするは増える。ちなみにチェック数に Ping のチェック数はカウントしない。

- **年契約: 1万チェック 69 USD/月 から**
- **月契約: 1万チェック 99 USD/月 から**

1万チェックまでの金額は載っているけど、それ以上の場合は、問い合わせる感じ。

Synthetics の場合は、UI で場所とか頻度を設定する際に UI 上にその設定で何チェック使うかが表示される。また、契約したチェック数を越える設定ができないようになっているので、チェック数が契約数を越えることはない。

## New Relic Mobile

iOS, Android などのネイティブアプリのパフォーマンス分析やクラッシュ分析をできるサービス。それぞの SDK があり、モバイルアプリに一緒に組み込み、それぞれのアプリストアで公開する。

|| Lite (無料)  |  Enterprise (有料)  |
|:-----------|:------------:|:------------:|
| データ保持期間 |  1日  |  90日  |
| パフォーマンスの概要 |  ◯  |  ◯  |
| クラッシュ分析 |  |  ◯  |
| ユーザー操作の追跡 |  |  ◯  |
| アクセス場所やデバイス種別等での分析 |  |  ◯  |


細かい説明は[こちら](https://qiita.com/kumatronik/items/2249c7ed24136f788875)を参照。

### 価格帯

New Relic Mobile は、月間アクティブユーザー数で課金。

- **年契約: 10万アクティブユーザー 999 USD/月 から**
- **月契約: 10万アクティブユーザー 1499 USD/月 から**

10万アクティブユーザー以上の場合は、問い合わせる感じ。

## New Relic Infrastructure

iOS, Android などのネイティブアプリのパフォーマンス分析やクラッシュ分析をできるサービス。それぞの SDK があり、モバイルアプリに一緒に組み込み、それぞれのアプリストアで公開する。

|| Essentials (有料)  |  Enterprise (有料)  |
|:-----------|:------------:|:------------:|
| データ保持期間 |  3ヶ月  |  13ヶ月  |
| サーバーのパフォーマンス監視(CPUやメモリ等) |  ◯  |  ◯  |
| IT 資産管理 | ◯ |  ◯  |
| サーバーの設定変更監視 | ◯ |  ◯  |
| AWS/Azure等のクラウドとの連携 |  |  ◯  |
| MySQL/Nginx 等のミドルウェア連携 |  |  ◯  |

Infrastructure は無料版がない。

細かい説明は[こちら](https://qiita.com/kumatronik/items/341fda79857f90e3094b)を参照。

### 価格帯

New Relic Infrastructure の課金単位は、APM で説明した CU (Compute Unit)を使う。価格帯的にも非常にリーズナブルだと思う。

以下の３つの組み合わせで値段が決まる。

- 月契約 or 年契約
- Essentials or PRO
- CU

Essentials は PRO の半額。

同じ説明だけどここにも書いておく。

CU の計算方法は以下:

`CU = (CPU コア数 + RAM の GB) * 利用時間`

利用時間は、1ヶ月まるまる利用の場合は、750時間で計算する。

例えば、CPU コア:2、RAM: 4G の場合は、(2+4)*750=4500 CU となる。
その CU に対して、他の選択肢(月契約とかPROとか）ごとに単価があり、それを掛けた金額となる。

CU の月の単価は以下っぽい。

- 年契約:PRO: 0.0012 USD/CU
- 月契約:PRO: 0.00168 USD/CU
- 年契約:Essentials: 0.0006 USD/CU
- 月契約:Essentials: 0.00084 USD/CU

例えば、AWS で、t2.large を 1インスタンス利用する場合は、7500 CU であり、年契約かつ PRO の場合は、9 USD/月(=7500*0.0012)。

AWS/Google/Microsoft を使っている方は、簡単に計算できる[シミューレーターが公式サイト](https://newrelic.com/infrastructure/pricing)にあるので、そこでぽちぽちすれば簡単に CU と料金を知ることができる。

年契約の場合だけ簡単に価格帯を紹介する。

- **Essentials: 0.90 - 7.20 USD/月 per インスタンス**
- **PRO: 1.80 - 14.40 USD/月 per インスタンス**

単価みると、月契約だと年契約のだいたい1.5倍くらいの値段となる。

## New Relic Insights

Insights は、各製品のデータをまとめてみることができるダッシュボードツール。NRQL という SQL ライクなコマンドを UI 上に打ち込むことで、好きな条件や期間でデータを分析することができる。

例えば、APM と Browser, Infrastructure を使っていれば、そのデータを１つのビューに表示することができる。
また、APM だけでも APM の UI では確認できないより細かい単位で分析もできるし、[カスタムイベント](https://qiita.com/kumatronik/items/0a84e3c719aea953db44)などアプリ独自のデータを送信している場合は、そのデータを使って分析も行える。例えば、複数のストアを持つ EC サービスなんかの場合、カスタムイベントとして、ストアIDを送信することで、ストアごとのパフォーマンス分析を行うことができる。

Insights の詳しい説明は[こちら](https://qiita.com/kumatronik/items/b25313a8631e46140499)。

### 価格体系

Insights は、上記製品の有料版を使っていれば、無料で使える。

データの保持期間は8日程度。別途 Insigts に課金することで、この期間を伸ばすことができる。
課金の単位は、イベント数。APM とかなら、1トランザクション1イベントという単位。具体的な価格は、要問い合わせ。(サイト上には具体的な金額はなし）