はじめに
今年もお世話になりました。
gloops Advent Calendar 2016の
15日目担当インフラエンジニアの河村です
14日目は @s_yamada さんの
家系ラーメンで学ぶ新規ゲームの企画書
でした
ラーメンが食べたくなる投稿ですね
九州出身ってこともあり基本とんこつラーメンしか食べません
飲みのあとの締めのラーメンはやめました! ->
今回の目的
re:iventでAWSの新機能がわんさか発表されましたが
リリース直後はパツパツで触れてなかったので
少し触ってみました
対象のサービスは以下の2つ
-
Amazon Athena(以下、AWS Athena)
-
Google BigQuery(以下、GCP BigQuery)
AWS Athena
「AWS re:invent 2016」で発表された
新サービスです
S3においているデータに対して
標準SQLを用いてクエリを発行できるサービスです
安価で大量のデータを保存できるS3対して
ユーザーがほしいデータを分析出来るサービスですね
しかも超高速に!
タイトルにも書いていますが、
GCP BigQueryとほぼ同じサービスですね
GCP BigQuery
説明はしないですが、
gloopsでもがしがし使ってます
紹介もしてもらいました!
Googleの方に
笑顔がいいねと褒められました!!
AWS Athena 使ってみる
S3へログを
弊社の1つのタイトルのnginx accesslogをS3にあげあげしました
AWS Athenaの設定
記事書いてる2016/12/14時点では、
AWS Athenaは、オレゴン・バージニア リージョンのみ利用可能です
S3に関しては、東京リージョンに置いていてもAWS Athenaから見てくれます
- AWS マネージドコンソール
- Query Editor
- Add table
- Database: Create new database
- Databaseの名前をつける
- tableの名前をつける
- Location of Input Data Set -> s3://バケット名/ログ置き場/
- データのフォーマット選択する(今回はlog)
- Column追加してあげる
- 作成完了
CREATEのクエリ実行され正常に完了すればOK
実際にクエリ実行してみる
※追記
初回投稿時は
Athena:オレゴン - S3:東京
のみの検証でしたが
以下を追加しました
Athena:オレゴン - S3:オレゴン
Athena:オレゴン - S3:オレゴン(ファイル圧縮)
また、以下の数値は数回クエリ実行した中での
平均的な数値を代表して記載しています
Athena:オレゴン - S3:東京
- AWS Athenaで、2016/12/13のアクセスのカウントは・・・
約3,350万件で
17.64s
スキャンデータ:12.96GB
- AWS Athenaで、分毎にまとめてみると・・・
19.98s
スキャンデータ:12.96GB
Athena:オレゴン - S3:オレゴン
- 2016/12/13のアクセスのカウントは・・・
同じく、約3,350万件で
6.16s
スキャンデータ:12.96GB
- 分毎にまとめてみると・・・
7.65s
スキャンデータ:12.96GB
Athena:オレゴン - S3:オレゴン(ファイル圧縮)
- 2016/12/13のアクセスのカウントは・・・
同じく、約3,350万件で
9.87s
スキャンデータ:1.69GB
- 分毎にまとめてみると・・・
10.1s
スキャンデータ:1.69GB
GCP BigQueryはどう?
実際にクエリ実行してみる
- GCP BigQueryで、2016/12/13のアクセスのカウントは・・・
約3,360万件で
1.9s
- GCP BigQueryで、分毎にまとめてみると・・・
257MBで
2.4s
比較結果
AWS Athenaは、アクセスログファイル
GCP BigQueryは、insertしたデータ
なので、スキャンするデータに大きな差がでた
|件数||
|:--------|:-------:|:-------:|
|AWS Athena|33,522,222|
|GCP BigQuery|33,622,636|
秒数 | ただのCOUNT | 毎分カウント |
---|---|---|
AWS Athena:オレゴン-東京 | 17.64s | 19.98s |
AWS Athena:オレゴン-オレゴン | 6.16.64s | 7.65s |
AWS Athena:オレゴン-オレゴン(圧縮) | 9.87s | 10.1s |
GCP BigQuery | 1.9s | 2.4s |
※今回はAWS Athenaに関しては、
S3:東京、AWS Athena:オレゴンで実施したため
時間に差分がでているようです。
S3を同リージョンにして、
再検証予定です。
※※検証追記しました
スキャンデータ | ただのCOUNT | 毎分カウント |
---|---|---|
AWS Athena:通常ファイル | 12.96GB | 12.96GB |
AWS Athena:圧縮ファイル | 1.96GB | 1.96GB |
GCP BigQuery | - | 257MB |
データを取得することだけ考えると
BigQueryの方がクエリ料金はやすくなりそうだ
S3のファイルの置き方が、
環境/MM/DD/HH/access.logにしているのでそのへんの影響もあるかも
コスト面で大きなことは
BigQueryは、insert料金は別途かかってます
※追記
データ転送・ストレージ等の含めた全体のコスト自体は出せていません
AWS AthenaとS3のリージョン合わせることによってrunTimeは、1/2~1/3になります
AWS Athenaは、データ圧縮すれば、単純にクエリコストが1/10になります
BIツール
AWS QuickSight
ちょっと間に合いませんでした
別機会でやろうと思います
redash
gloopsでは、GCP BigQueryのaccesslogのリアルタイム閲覧には
redash
使ってます
クエリ発行させすぎないように以下の制限かけています
- 自動更新しない
- 直近1hのデータのみ取得する
Google Data Studio
現在ベータ版です
Google Data Studio
使ってみた結果、
リアルタイムには向いていなく
キャンペーン期間中の振り返りレポートみたいな
使い方になるんだろうなと思いました
まとめ
年の瀬ドタバタしてますが、
新機能触れて良かったです
エンジニアや、非エンジニアのみんなが
集めたログを有効活用してくれるよう
来年も頑張りたいと思います
では、忘年会に行ってきますノシ