ガチャつくブログ

IT系のお勉強のために、やってみたことをアウトプットしていきます。

MENU

AWS でガチャつく - AWS Client VPNのログを可視化 -

f:id:tmt-tty:20200507210238p:plain

はじめに

ども、とみた(@_tamitom)です。

 

今回はAWSでガチャついてみたいと思います。

仕事では結構AWSをいじってるんですが、ブログにはあんまり書いてませんでした。

 

弊社でも絶賛テレワーク中なんですが、VPNのライセンス制限で同時接続数が少なかったり課題もあるので、AWS Client VPNを準備中です。

利用するからには、利用状況を把握したいので、その辺りのやり方を中心に。

 

AWS AppStreamなんかも使ってみたりしているので、興味のある方はこちらのnoteを。

※noteと、はてなブログの使い分けがわからず、情報が散在中(汗)

note.com

 

ガチャつき方

AWS Clietn VPNの構築方法については、割愛します。(イキナリ)

クラスメソッドさんのブログが非常に参考になりますので、そちらで!

dev.classmethod.jp

 

ただ、今回ログを分析するのでAWS Client VPN → CloudWatch Logsの設定は必要です。このあたりは、サーバーワークスさんのブログに記載があるので、そちらで!

blog.serverworks.co.jp

必要に応じて CloudWatch Logs のロググループ・ログストリームを選択します。(事前に作成が必要)

 

AWS Client VPN → CloudWatch Logsの設定が終わってる前提で、

ログストリームにはAWS Client VPNのログがたまっていると思います。

f:id:tmt-tty:20200507165600p:plain

 

このログから、必要な情報を抜いていきたいと思います。

自分の場合は、接続ユーザー名・接続開始時間・接続終了時間を取ります。

 

ログ > インサイト をクリックします。

f:id:tmt-tty:20200507165933p:plain

 

ロググループにAWS Client VPNのロググループを指定します。

指定するとログ内のフィールドが自動的に表示されます。

f:id:tmt-tty:20200507194523p:plain

 

後はクエリを書いて絞りこんでいきます。SQLを書ける人はなんて事無いと思いますが、私は全く書けません。が、自分が表示したいものだけに絞り込むぐらいはできました。

 

下記をクエリ入力欄に入れます。

 

fields username, `connection-start-time`, `connection-end-time`
| filter `connection-log-type` = "connection-reset"

クエリの説明ですが、まず、必要なフィールドを指定します。

ユーザー名(username)、接続開始時間(connection-start-time)、接続終了時間(connection-end-time)

また、connection-resetというconnection-log-typeがあれば足りるので、フィルターしています。

 

クエリの実行をクリックします。

該当するログが下部に表示されます。

※この時検索するログの期間は上部で指定できます。

f:id:tmt-tty:20200507203057p:plain

 

ログを絞りこめたので、”アクション"からcsvにエクスポートすれば、後は煮るなり焼くなり自由ですw

f:id:tmt-tty:20200507203346p:plain

 

自分はPowerBIに取り込んで、ユーザー毎の利用時間合計をとりあえず出してみるなどしてみました!

f:id:tmt-tty:20200507204520p:plain

 

まとめ

AWS AppStreamなんかは、ユーザー毎のセッション情報をS3に吐いてくれたりするので、サクッと可視化できちゃうんですが、サービスによってはそう簡単にいかなかったりするので、最初は困ってました..

CloudWatchでも色々できるんだなぁと、改めてAWSの奥の深さを実感。サービス、機能、多すぎ...

社内向けの仕組みも導入後にしっかりデータ見ていくことが必須になってきているので、データ収集、可視化は重要ですね。

PowerBIの方も中途半端なスキルなので、かっこいいダッシュボードが作れるようにしたい。