Adways Advent Calendar 2020 9 日目の記事です。
はじめに
初めまして、新卒からAdwaysに入社し6年目になります。中嶋と申します。
社内インフラ、商用インフラ、クラウド管理などを経験してきた生粋のインフラエンジニアです。
今回やりたいこと
Route53の通信ログをCloudWatchで収集してCSVでダウンロードして通信が起きているドメイン名の一覧が知りたい。
経緯
- とあるサービスの管理部署から「あるドメインのサブドメインを洗い出したい」と言われる。
- オンプレのロードバランサーのログから出力できないか試行錯誤する
- スクリプトを書けばできなくはないが、CloudWatchならもっと簡単にできそう
- 試しにCloudWatchでログを取ってCSV化しサービス側に提案(その間なんと5分!)
やりかた
AWSでRoute53を開く
AWSの画面左上の「サービス」からroute 53 と入力するか一覧からRoute 53を見つけてクリックする。
ホストゾーンの画面を開く
左メニューのホストゾーンもしくは、画面中央(下図赤枠)のホストゾーンをクリックする。
対象のドメイン名をクリック
クエリログの設定画面を開く
画面右上の「クエリログの設定」ボタンをクリックする。
ロググループの作成/選択
下図赤枠の部分をクリックして展開する。
今回はロググループを作成するので、「ロググループを作成」(下図赤枠部分)をクリックする。
ロググループ名の入力とアクセス許可設定
分かりやすいようにロググループ名をつける。
アクセス許可の部分をクリックして展開し、アクセスが許可されていることを確認する。
※許可されていない場合は「ポリシーを作成」をクリックすることで自動的に適切なポリシーが作成される。
最後に作成をクリックする。
CloudWatchの設定画面を開く
続いて、CloudWatchの設定画面を開く
ロググループを選択
左メニューよりロググループ(下図赤枠)をクリックする。
先ほど作成したロググループ名をクリック
ログストリームにあるすべてのログを表示する
「Search all」(下図赤枠)をクリックしてすべてのログを表示する。
検索結果のダウンロード
アクション->検索結果をダウンロード(CSV) を選択することで、CSV形式でファイルがダウンロードされる。
DLしたCSVをテキストエディタ等で開き、置換を行う
※半角スペース区切りなのでエクセルで開くと1列にすべてのデータが表示されてしまう。
置換機能で半角スペースをすべてタブに置換する。
保存したデータをExcelで開く
左から4つ目の列がサブドメインを含むドメイン名です。
まとめ
AWSだとこのように意外と簡単にログを取得することができました。
もっと細かい設定や監視内容も取れそうなので今後も活用していきたいと考えてます。
次はやのさんの記事です。