CloudWatch MetricsのデータをNew Relicに送るのが簡単にできた話

この記事は <a href="https://qiita.com/advent-calendar/2022/mediba">mediba Advent Calendar 2022</a> 10日目の記事です。

## はじめに
この度は、このような機会を頂きましてありがとうございます。
私は、今年10月から株式会社medibaでSREエンジニアとして参画しました、馬淵と申します。
インフラ面からSREエンジニアとして携わることができ、充実して日々を過ごしております。

さて、今回私が記載することは、SREにおいて重要な「計測」を担う、New Relicについての内容になります。
AWSで管理しているリソース群を非常に簡単な手順でNew Relicに送信できる事を知る機会があったので、そちらの手順を紹介していきたいと思います。

## 必要なもの
New Relicアカウント
AWSアカウント

## 手順の流れ
１、New RelicアカウントとAWSアカウントの連携設定を始める
２、AWS側でIAMユーザーを作成する
３、IAMユーザーのARNをneweRelic側に登録する
４、New Relic側からLicenseKeyを取得する
５、New Relic公式のCloudFormation Templateを実行する
６、完成！

## 手順
### １、New RelicアカウントとAWSアカウントの連携設定を始める
AWS Integrationというサービスを使う事で、New RelicとAWSの連携を行います。
New Relic側に表示されるセットアップページのstep1~6に従って設定すれば簡単に連携ができます。
作業はNew RelicとAWSの両ページを開きながら進めます。


最初はNew Relicアカウントのトップページ右上にある、[+add data]を押下します。
![20221207-0044_5ca153239910cd6955b8270a847252f5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960719/ce3df533-d570-72d6-61e5-e5c7ac08bc53.png)
連携できるサービス一覧が表示されます。
検索欄に[aws]と入力し、[Integrate your AWS account]を押下します。
![20221207-0046_1402ec7948a908ec6d1bccd70ac7cc05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960719/5c474410-3c89-3e97-6355-26dbb3d18f0f.png)
[Set up Amazon Web Service integrations.]を押下し、セットアップページに遷移します。
![20221207-0050_a65f715cf2a7da1b864a77c0d5d6dd24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960719/1a56e990-739b-1957-f607-fd562bd6f20b.png)
AWS Integrationのmode選択をします。
ここでは推奨されているMetric Streamsで進めるので、[Use metric Streams]を押下します。
![20221207-0056_b9d30ab394538c58288c255e8773af1d.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960719/77e1825e-22a0-ca0a-06ea-d344bd36acf0.png)
以下の画面から、AWSマネジメントコンソールを開きながらセットアップを始めます。
赤丸のAccountIDとExternalIDは後ほど使います。
![20221207-0104_86c5e3197581ac52bcde19435cef7d21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960719/233af54d-282c-a2f4-7fdf-1ffbb67ac0c5.png)

### ２、AWS側でIAMユーザーを作成する
New Relic側ページのstep1〜step5の内容まで進めます。
AWSマネジメントコンソールを開き、IAMのページに遷移します。
![20221207-0109_a17a21e8be658cfc6fdd352f813cebb8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960719/4121c19f-5e40-7074-664b-99cccf61b06e.png)
[ロール]から[ロール作成]を押下します。
![20221207-0110_4e591d72ef4ce8cd2962c078ad8c2541.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960719/95cb860c-14a1-63a6-6631-45ad0a4e0847.png)
[AWSアカウント]を選択、[別のAWSアカウント]の[アカウントID]に先ほどのAccountIDを入力します。
オプションの[外部IDを要求する]にチェックを入れ、先ほどのExternalIDを入力します。
![20221207-0113_09e9fb2dea482686f2def99854d82621.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960719/4ef67825-5f89-00b0-0c41-34933fcdd23c.png)
step2の内容に入ります。
[ReadOnlyAccess]でポリシーを検索、選択して[次へ]を押下します。
![20221207-0122_0932866fca70b067962e2088c3f2226c.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960719/800189bb-142b-4a17-0e62-b5180de77951.png)
step3の内容に入ります。
ロールの名前に[NewrelicInfrastructure-Integrasions]と指定し、[ロールを作成]を押下します。
![20221206-0107_4621145e9ee3737e04b22d0378ea8c63.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960719/c100bbba-e266-6df5-aa03-672843e52f0d.png)
### ３、IAMユーザーのARNをNew Relic側に登録する
[ロール]から、先ほど作成したNewrelicInfrastructure-Integrasionsを押下します。
![20221207-0135_79533773232de28392e72be89ef8ed20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960719/648ca9bb-a606-2b06-1049-def62bc93568.png)
作成したロールのARNをコピーします。
![20221207-0140_2f657878a5e11eae560ea6e6f197d30d.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960719/65dfc58f-b945-1625-e14e-b0af7289b42d.png)
step4はオプションなのでスキップし、step5まで進みます。
New Relic側ページの[Paste the ARN created in the previous step]に先ほどのARNを入力します。
上の欄には、ご自身のAWSアカウントIDを入力します。
![20221207-0148_b25c663075192862a013bba193280524.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960719/ae16496a-c0fd-2aca-287e-6539f1dbfd25.png)
AWSアカウントIDはAWSマネジメントコンソール画面右上から確認できます。
![20221207-0152_8851bd8f43e845f984c8e9c633b81aae.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960719/7d1ce7b7-9862-e570-ebdd-5921151b5f37.png)
これで連携の作業は一区切りです。

### ４、New Relic側からLicenseKeyを取得する
step6で使用するAPIキーを取得します。　※まだセットアップページは閉じないでください。
New Relicのページ左下部の自分のアカウント名を押下し、[API keys]を押下します。
![20221207-0209_ddd7cec5490885138c9add0d5196721b.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960719/dab9b9de-c952-85ca-f6be-9ce316dbbffa.png)
License Keyの[Copy key]を押下します。
![20221207-0222_1f7fb3212d4f3d85a9a276d3179d1730.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960719/8ddab996-f5da-e9d9-ede4-49e02f9d9962.png)

### ５、New Relic公式のCloudFormation Templateを実行する
New Relicのセットアップぺージstep6まで進みます。
[Use the CloudFormation Template]をクリックします。
![20221207-0226_09d155e39c046f11e84767b80c037c8f.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960719/9718ef9e-2943-fd55-df17-c001c1172d85.png)
AWS CloudFormation上のスタック作成画面に遷移します。
入力されているパラメータはそのままで。
![20221206-0122_b84f070ac02010aeca61bdb32731e63b.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960719/1c3c82d2-ec0b-d6f8-140b-967c3d06910c.png)
パラメータ欄にある、[New Relic Ingest License Key]に、先ほど取得してきたLicense Keyを入力し、[スタックの作成]を押下します。
![20221207-0249_d1f3345bacaa9852ccc6960831089a7a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960719/834da58d-fb12-752a-df2e-6b23d62f33b1.png)
スタックの作成が開始されます。
しばらく待つと、作成が完了し、[CREATE_COMPLETE]と表示されます。
![20221207-0253_e570684ec3c985da504427a53f5be74b.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960719/878eff10-0077-2366-4353-f3ed3f5269c1.png)
### ６、完成！
スタックの作成が完了してからしばらくすると、New Relic側で各種情報が表示されていることが確認できます。
![20221207-0258_e2976d35aa2af34a2a55681a1b86bc8c.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2960719/b83a9282-560a-07d3-ff7c-f7096cc7d43d.png)


## 終わりに
以上になります。
実作業時間は20分もかからずにできるので、非常に簡単に設定することができました。
また、AWSアカウントもNew Relicアカウントも無料で作成できるため、手軽に勉強としても始めることができますね。
他にも無料で触れるところは色々あるみたいなので、これを機に勉強してみようと思います。


## 参考記事
<a href="https://dev.classmethod.jp/articles/cloudwatch-new-relic-integration/#toc-4">CloudWatchのメトリクスデータをNew Relicに連携してみた</a>
<a href="https://speakerdeck.com/tomoyakitaura/the-story-of-a-super-fast-implementation-of-data-integration-between-aws-and-new-relic">AWSとNew Relicのデータ連携を超高速で実装した話</a>
<a href="https://console.aws.amazon.com/cloudformation/home?#/stacks/quickcreate?templateURL=https://nr-downloads-main.s3.amazonaws.com/cloud_integrations/aws/cloudformation/MetricStreams_CloudFormation.yml&stackName=NewRelic-Metric-Stream&param_NewRelicDatacenter=US">公式Cfn</a>


## その他宣伝
現在、medibaの募集求人ページから応募され入社が決定すると、お祝い金として30万円をプレゼントするキャンペーンを実施中です！！
リモート環境を充実のためディスプレイやマイク等を買いそろえるも良し。スキル習熟のために自己研鑽に使うも良し。使途は完全自由です。
→　<a href="https://hrmos.co/pages/mediba/jobs/1100000001">募集・応募ページ</a>
いきなり応募だとちょっとハードルが高い・・でも興味がある方は、カジュアル面談も行っていますので、まずはお話してみませんか？
→<a href="https://hrmos.co/pages/mediba/jobs/6100000001">　カジュアル面談</a>
※お祝い金は、試用期間（3か月）を経て、雇用が継続した場合に支給させて頂きます。