Java Spring BootサーバーにNew Relic (APM)をインストールする方法
この記事は韓国語のオリジナル記事をAIの支援で翻訳したものです。 韓国語の原文を読む →

目標
Java Spring BootサーバーにNew Relicをインストールし、APMを通じてトランザクションとエラーをモニタリングします。
デプロイ環境
複数のリポジトリがあり、以下の2つの方式を混用していると仮定します。
- Docker on EC2
- ECS & Code Deploy
インストール手順
会員登録後、New Relicが提供するガイドに順番に従います。
- APMを選択後、Javaを選択
- 「Begin installation」ボタンをクリック
- 右下の「Other Java installation options」をクリック

- 1番にアプリ名を記入します。
- 2番の「Download」ボタンを押して、newrelic.ymlファイルをダウンロードします。

- 3番の「Copy to clipboard」を押してcurlコマンドをコピーし、シェルにペーストしてnewrelic-java.zipをダウンロードします。
- 4番のSpring Bootを選択します。
- これ以降のステップは無視しても構いません。6番の場合、DockerのコンディションをチェックしたいならAWSコンソールに接続してコマンドを入力します。ただし、New Relicは月の無料枠100GBを超えると1GBあたり$0.25の料金が発生するため、他のモニタリングツールで確認することをおすすめします。
- ダウンロードしたnewrelic-java.zipを解凍し、Springプロジェクトのルート直下に配置します。この時、newrelicフォルダの下にjarファイルが配置されるようにフォルダ名の変更などを行います。
- git pushしてリポジトリに反映させます。ほとんどの開発者はjarファイルをgit ignoreに設定しているため、force addします。
git add <blar>.jar -f
- 一度デプロイを実行し、サーバーにNew Relicのファイルがアップロードされるようにします。
Docker on EC2の場合
- 自身のシステムにあるdocker-compose.ymlを開き、以下のように修正します。
- entrypointに -javaagent:/newrelic/newrelic.jar を追加しました。-javaagentは必ず -jar よりも前に記述する必要があります。
- volumesに ./newrelic:/newrelic/ を追加しました。上記のentrypointでjavaagentを実行する部分を -javaagent:/app/newrelic/newrelic.jar にすれば、マウントする必要はありません。
maven:
build:
context: ./
dockerfile: Dockerfile
args:
PROCESS: test
environment:
- PROCESS=test
container_name: maven
expose: [ 8080 ]
ports:
- 8080:8080
entrypoint: java -javaagent:/newrelic/newrelic.jar -Dnewrelic.environment=test -jar -DSpring.profiles.active=test /app/target/test-0.0.1-SNAPSHOT.jar
depends_on:
volumes:
- ./:/app
- ./newrelic:/newrelic/
- git push後、デプロイを行います。
ECS & Code Deployの場合
- AWSのECSに移動し、タスク定義をクリックします。
- New Relicを適用するサーバーを選択し、「新しいリビジョンの作成」を押します。
- 新しいリビジョンの作成ページで一番下までスクロールし、ボリュームの「JSONによる設定」ボタンを押します。
- JSONのcommand部分を以下のように変更します。EC2を使用する際にentrypointに記述したものと同じです。変更後、保存ボタンを押します。
- マウントを試みましたが、思い通りにいかなかったため諦めました。
"command": [
"java",
"-javaagent:/app/newrelic/newrelic.jar",
"-jar",
"-DSpring.profiles.active=release",
"/app/target/test-0.0.1-SNAPSHOT.jar"
],
- 作成ボタンを押して新しいリビジョンを作成します。
- デプロイを行います。