Route53の通信ログをCloudWatchで収集してみた

Adways Advent Calendar 2020 9 日目の記事です。


 

はじめに

初めまして、新卒からAdwaysに入社し6年目になります。中嶋と申します。
社内インフラ、商用インフラ、クラウド管理などを経験してきた生粋のインフラエンジニアです。

今回やりたいこと

Route53の通信ログをCloudWatchで収集してCSVでダウンロードして通信が起きているドメイン名の一覧が知りたい。

経緯

  1. とあるサービスの管理部署から「あるドメインのサブドメインを洗い出したい」と言われる。
  2. オンプレのロードバランサーのログから出力できないか試行錯誤する
  3. スクリプトを書けばできなくはないが、CloudWatchならもっと簡単にできそう
  4. 試しにCloudWatchでログを取ってCSV化しサービス側に提案(その間なんと5分!)

やりかた

AWSでRoute53を開く

AWSの画面左上の「サービス」からroute 53 と入力するか一覧からRoute 53を見つけてクリックする。

f:id:AdwaysEngineerBlog:20201210202848p:plain

ホストゾーンの画面を開く

左メニューのホストゾーンもしくは、画面中央(下図赤枠)のホストゾーンをクリックする。

f:id:AdwaysEngineerBlog:20201210202906p:plain

対象のドメイン名をクリック

f:id:AdwaysEngineerBlog:20201210202930p:plain

クエリログの設定画面を開く

画面右上の「クエリログの設定」ボタンをクリックする。

f:id:AdwaysEngineerBlog:20201210202947p:plain

ロググループの作成/選択

下図赤枠の部分をクリックして展開する。

f:id:AdwaysEngineerBlog:20201210203008p:plain

今回はロググループを作成するので、「ロググループを作成」(下図赤枠部分)をクリックする。

f:id:AdwaysEngineerBlog:20201210203040p:plain

ロググループ名の入力とアクセス許可設定

分かりやすいようにロググループ名をつける。
アクセス許可の部分をクリックして展開し、アクセスが許可されていることを確認する。
※許可されていない場合は「ポリシーを作成」をクリックすることで自動的に適切なポリシーが作成される。
最後に作成をクリックする。

f:id:AdwaysEngineerBlog:20201210203108p:plain

CloudWatchの設定画面を開く

続いて、CloudWatchの設定画面を開く

f:id:AdwaysEngineerBlog:20201210203126p:plain

ロググループを選択

左メニューよりロググループ(下図赤枠)をクリックする。

f:id:AdwaysEngineerBlog:20201210203138p:plain

先ほど作成したロググループ名をクリック

f:id:AdwaysEngineerBlog:20201210203159p:plain

ログストリームにあるすべてのログを表示する

「Search all」(下図赤枠)をクリックしてすべてのログを表示する。

f:id:AdwaysEngineerBlog:20201210203223p:plain

検索結果のダウンロード

アクション->検索結果をダウンロード(CSV) を選択することで、CSV形式でファイルがダウンロードされる。

f:id:AdwaysEngineerBlog:20201210203241p:plain

DLしたCSVをテキストエディタ等で開き、置換を行う

※半角スペース区切りなのでエクセルで開くと1列にすべてのデータが表示されてしまう。
置換機能で半角スペースをすべてタブに置換する。

f:id:AdwaysEngineerBlog:20201210203253p:plain

保存したデータをExcelで開く

左から4つ目の列がサブドメインを含むドメイン名です。

f:id:AdwaysEngineerBlog:20201210203304p:plain

まとめ

AWSだとこのように意外と簡単にログを取得することができました。
もっと細かい設定や監視内容も取れそうなので今後も活用していきたいと考えてます。


 

次はやのさんの記事です。