Slide 1

Slide 1 text

New Relicアカウントに特定のLambdaを紐づける方法 2023/3/15 ディップ株式会社 町田 雅史

Slide 2

Slide 2 text

自己紹介 名前 : 町田 雅史 (machida masafumi) ディップ株式会社に2022年4月にJOIN 主にGoを用いたバックエンドの開発を担当 直近ではElasticsearchを用いて検索基盤の改善を行なっています バイク、音楽が好きです 楽器もちょっとだけ弾いたりします EFTJHOFECZ3FOÉF'SFODI

Slide 3

Slide 3 text

アジェンダ ● New Relicを導入した経緯 ● New RelicとLambdaの統合 ● アカウント事情 ● 課題 ● 解決方法

Slide 4

Slide 4 text

今回お話しないこと ● New RelicとAWSの詳細な統合手順 ● 2種類の統合方法(metric streamとAPI poling) の細かい話 公式ドキュメント: https://docs.newrelic.com/jp/docs/infrastructure/amazon-integrations/get-started/introduction-aws-integrations/

Slide 5

Slide 5 text

1 New Relicを導入した経緯

Slide 6

Slide 6 text

New Relicを導入した経緯 ● 主に利用していた監視SaaSのコストが増大 このまま利用を続けると更に5倍以上になる見込み

Slide 7

Slide 7 text

New Relicを導入した経緯 ● 監視方法が社内で統一されていない状況 ○ 一部のプロダクトではNew Relicと他監視SaaSを組み合わせ て利用 ○ 監視SaaSが未導入なプロダクトも -> New Relicに一本化を図る

Slide 8

Slide 8 text

2 New RelicとLambdaの統合

Slide 9

Slide 9 text

New RelicとLambdaの統合 ● Lambdaで動くバッチにNew Relicを導入

Slide 10

Slide 10 text

New RelicとLambdaの統合 ● Lambdaで動くバッチにNew Relicを導入 ログ出力、tracing Lambda LayerにNew Relicの拡張機能を設定し、ログと分散トレースの収集を行う

Slide 11

Slide 11 text

New RelicとLambdaの統合 統合方法は2種類

Slide 12

Slide 12 text

New RelicとLambdaの統合 統合方法は2種類 API polingを利用します

Slide 13

Slide 13 text

3 アカウント事情

Slide 14

Slide 14 text

アカウント事情 etc…

Slide 15

Slide 15 text

アカウント事情 New Relicのアカウントは プロダクト別に管理したい

Slide 16

Slide 16 text

4 課題

Slide 17

Slide 17 text

AWS account 1 課題 ● 1つのAWSアカウントに複数プロダクトが稼働 AWS account 2 プロダクトA プロダクトB プロダクトC プロダクトE プロダクトD

Slide 18

Slide 18 text

課題 ● New RelicとAWSの統合はアカウント単位

Slide 19

Slide 19 text

課題 ● New RelicとAWSの統合はアカウント単位 AWS account プロダクトA用アカウント プロダクトB用アカウント プロダクトC用アカウント プロダクトA プロダクトB プロダクトC

Slide 20

Slide 20 text

課題 ● New RelicとAWSの統合はアカウント単位 AWS account プロダクトA用アカウント プロダクトB用アカウント プロダクトC用アカウント プロダクトA プロダクトB プロダクトC プロダクトA プロダクトB プロダクトC プロダクトA プロダクトB プロダクトC プロダクトA プロダクトB プロダクトC 関係のないものま で紐づけられてし まう。。。

Slide 21

Slide 21 text

課題 ● New RelicとAWSの統合はアカウント単位 AWS account プロダクトA用アカウント プロダクトB用アカウント プロダクトC用アカウント プロダクトA プロダクトB プロダクトC プロダクトA プロダクトB プロダクトC 本当はこうしたい

Slide 22

Slide 22 text

5 解決方法

Slide 23

Slide 23 text

解決方法 ● API polingの利用

Slide 24

Slide 24 text

解決方法 ● Configureからタグフィルターを設定

Slide 25

Slide 25 text

解決方法 ● Configureからタグフィルターを設定 ・Limit to tag key とLimit to tag valueを ONに変更 ・それぞれ入力して画面右下のSubmitを 押下すると設定が反映される

Slide 26

Slide 26 text

解決方法 ● Lambda側も同様のタグを入れる ・New Relic側の設定と同様のタグを持つLambda関数のみが紐付けられるようになる

Slide 27

Slide 27 text

解決方法 AWS account プロダクトA用アカウント プロダクトB用アカウント プロダクトC用アカウント プロダクトA プロダクトB プロダクトC

Slide 28

Slide 28 text

解決方法 AWS account プロダクトA用アカウント プロダクトB用アカウント プロダクトC用アカウント プロダクトA プロダクトB プロダクトC ● タグフィルターを設定 tagA filter tagB filter tagC filter

Slide 29

Slide 29 text

解決方法 AWS account プロダクトA用アカウント プロダクトB用アカウント プロダクトC用アカウント プロダクトA プロダクトB プロダクトC tagA tagB tagC ● 紐付け先アカウントを識別するタグを付与 tagA filter tagB filter tagC filter

Slide 30

Slide 30 text

プロダクトA用アカウント 解決方法 ● 紐付け先の制御が可能に AWS account プロダクトA プロダクトB プロダクトC tagA tagB tagC プロダクトA プロダクトB用アカウント プロダクトC用アカウント tagA filter tagB filter tagC filter プロダクトB プロダクトC

Slide 31

Slide 31 text

解決方法 ● 既に紐付けが行われている場合でも プロダクトA用アカウント AWS account プロダクトA プロダクトB プロダクトC プロダクトA プロダクトB用アカウント プロダクトC用アカウント プロダクトB プロダクトC B C A C A B

Slide 32

Slide 32 text

プロダクトA用アカウント 解決方法 ● 不要なリソースを落とせる AWS account プロダクトA プロダクトB プロダクトC tagA tagB tagC プロダクトA New Relic側でタグフィルターに対応しているサービスであればLambda以外でも同様の紐付け制御が可能 プロダクトB用アカウント プロダクトC用アカウント tagA filter tagB filter tagC filter プロダクトB プロダクトC B C A C A B フィルタリング以降の データは取得されなく なる

Slide 33

Slide 33 text

! さいごに

Slide 34

Slide 34 text

宣伝 ● Go-test-tutorialを公開しています ○ https://github.com/dip-dev/go-test-tutorial 去年の12月頃に公開しました。 Go言語のunitテストに触れられるチュートリアルです。 ● ブログやってます ○ https://developer.dip-net.co.jp/ 弊社エンジニアによる技術ブログです。 技術ナレッジからカンファレンスに参加してきた様子など、 さまざまな情報を発信しています。 EFTJHOFECZ3FOÉF'SFODI

Slide 35

Slide 35 text

ご清聴ありがとうございました