Upgrade to Pro — share decks privately, control downloads, hide ads and more …

パフォーマンスとコスト制約から考えるアーキテクチャ設計(JAWSUG東京ランチLT会#4)

 パフォーマンスとコスト制約から考えるアーキテクチャ設計(JAWSUG東京ランチLT会#4)

2023年10月30日のJAWS-UG東京 ランチタイムLT会 #4で発表資料です。
測定した結果は、測定条件に基づく結果ですので、汎用的なものでないことはご了承ください。
測定条件については、下記URLに記載しています。
※簡易的な測定なので、ご了承ください
https://cloud.nri-net.com/reports/aws-athena-performance-analysis-2310/

Takuro SASAKI

October 31, 2023
Tweet

More Decks by Takuro SASAKI

Other Decks in Technology

Transcript

  1. パフォーマンスとコスト制約から考える
    アーキテクチャ設計
    JAWS-UG東京 ランチタイムLT会 #4
    2023年10月30日
    NRIネットコム株式会社
    デジタルイノベーション本部
    クラウドテクニカルセンター
    センター長 佐々木拓郎

    View full-size slide

  2. 1
    Copyright(C) NRI Netcom, Ltd. All rights reserved.
    自己紹介
    ◼ 2000年 4月 NRIネットコム株式会社入社
    ◼ 現在 クラウドテクニカルセンター センター長
    ◼ 執筆
    佐々木拓郎

    View full-size slide

  3. Japan AWS Ambassador 2019-2022
    最古参のAmbassadorの一人でした
    ※ AWS JAPAN APN ブログ Japan APN Ambassador 2019の発表
    https://aws.amazon.com/jp/blogs/psa/japan-apn-ambassador-2019/

    View full-size slide

  4. 3
    Copyright(C) NRI Netcom, Ltd. All rights reserved.
    アーキテクチャ設計の例
    01
    アーキテクチャを検討する
    02
    計測が大事
    03

    View full-size slide

  5. 4
    Copyright(C) NRI Netcom, Ltd. All rights reserved.
    1. アーキテクチャ設計の例

    View full-size slide

  6. 5
    Copyright(C) NRI Netcom, Ltd. All rights reserved.
    実際の活動をアーキテクチャに落とし込む(データ分析基盤の例)
























    広告
    メール
    SMS
    LINE
    SNS
    検索
    外部
    キャンペーン
    モバイル
    アプリ
    公式SNS
    EC
    商品
    ブランド
    BtoC会員
    BtoB
    会員
    DL資料
    ウェビナー
    購買CV
    加入CV
    CRM
    シス
    テム
    計測ツール
    データレイク ETL DWH
    分析
    システム
    BI
    ダッシュボード
    施策データ
    施策利用のための
    マーケティングツール等
    の連携
    エンドユーザー接点・行動レイヤー
    計測、働き掛けレイヤー
    データ活用の中枢レイヤー(分析基盤) データの施策活用
    送客CV
    リマケCV
    申込CV
    分析データ
    デジマツール
    (特化型)
    デジマツール
    (ワンパッケージ型)

    View full-size slide

  7. 6
    Copyright(C) NRI Netcom, Ltd. All rights reserved.
    データ分析処理の一例
    目的に合わせて加工したデータをデータウェアハウスに格納して分析する
    リアルの世界で
    の活動履歴
    オフライン
    データ
    用途に応じて
    データを編集
    ETL
    構造化した
    データを
    保存する場所
    データ
    ウェアハウス
    Web等のオンライン
    上の活動履歴
    オンライン
    データ
    生データ クエリ
    分析・可視化
    機械学習
    加工済
    データ
    一般的なシステム構成であるものの、ビジネス環境の変化が加速する事で課題が出てくる場合もある
    構造化の過程で、不要な
    情報が切り捨てられる
    POINT
    生データを構造化する段階で、不要な情報が切り捨てられる
    別の切り口で分析する際には、元データの再連携が必要
    そのためには、データレイクが必要

    View full-size slide

  8. 7
    Copyright(C) NRI Netcom, Ltd. All rights reserved.
    データレイク部分をアーキテクチャを考えていく
    RAWデータレイク・中間データレイク・構造化データレイク
    RAWデータレイク
    DBデータなど
    構造化データ
    アクセスログなど
    半構造化データ
    データレイク
    SNS投稿テキストなど
    非構造化データ
    ETL(整形処理)
    データの形式を統一
    フォーマット処理
    重複や欠損値の除去
    クレンジング処理
    個人情報などの除去
    マスク処理
    中間データレイク
    DBデータなど
    構造化データ
    アクセスログなど
    半構造化データ
    構造化されたテキスト
    半構造化データ
    ETL(ビジネス加工)
    データ置換など
    ビジネスロジック処理
    不要なカラムの除去など
    フィルタ処理
    データソースの属性結合
    エンリッチメント処理
    構造化データレイク
    顧客ごとのSNS反応履歴
    構造化データ
    Eコマースの購買履歴
    構造化データ
    実店舗の購買履歴
    構造化データ
    ETL(用途別加工)
    アプリ向けのデータ集約
    アプリ用処理
    古い情報のアーカイブ
    アーカイブ用処理
    集計などの加工
    分析用処理
    DWH
    データの
    フォーマット
    はバラバラで
    OK!
    データの意味その
    ものを変えるよう
    な加工はしない
    目的に応じて意味の改変も含めて加工したデータ

    View full-size slide

  9. 8
    Copyright(C) NRI Netcom, Ltd. All rights reserved.
    AWSのサービスに当てはめてアーキテクチャを考えていく
    それぞれの構成要素に対応した、複数のサービスがある。
    オフラインデータ
    オンラインデータ
    データレイク データ
    ウェアハウス
    データマート 分析・可視化
    機械学習
    ETL
    データ分析基盤
    リアルの世界
    での活動履歴
    Web等の
    オンライン上
    の活動履歴 Amazon S3
    Amazon EMR
    AWS Glue
    Amazon Athena
    Amazon
    Redshift
    Amazon
    Aurora
    Amazon
    Kinesis
    Amazon
    SageMaker
    Amazon
    QuickSight
    POINT
    データレイクとしてはS3を利用する。
    それ以外は、規模・用途に応じて使い分ける
    蓄積系
    収集系 処理・分析系
    データを
    そのまま保存
    構造化した
    データを保存
    用途に適した
    データを抽出
    用途に応じて
    データを編集
    整形された
    データで分析
    転送 取得
    AWS Lambda

    View full-size slide

  10. 9
    Copyright(C) NRI Netcom, Ltd. All rights reserved.
    アーキテクチャ選定の基準、もっていますか?
    用途に応じて使い分けるって、
    その基準は?
    えーっと!?
    (知らんがな)
    自信をもって答えられるようになろう

    View full-size slide

  11. 10
    Copyright(C) NRI Netcom, Ltd. All rights reserved.
    2. アーキテクチャの検討をする

    View full-size slide

  12. 11
    Copyright(C) NRI Netcom, Ltd. All rights reserved.
    アーキテクチャ検討の基準
    機能要件・非機能要件を元に考える
    必要な機能を
    持っているか?
    要件に対して
    十分な性能を
    発揮できるか?
    コストは
    ビジネス上の
    制約内に収まるか?
    その他の非機能要件を
    満たしているか?
    (セキュリティetc)
    ここの部分を考えてみます

    View full-size slide

  13. 12
    Copyright(C) NRI Netcom, Ltd. All rights reserved.
    S3のデータをBIツールでダッシュボード化してみたい場合
    Amazon S3
    Amazon QuickSight
    Amazon Athena
    Amazon Redshift
    AWS Glue
    抽出&変換 格納
    抽出&変換 クエリ
    クエリ
    可視化
    やり方は沢山ある
    どの構成でも良いの?

    View full-size slide

  14. 13
    Copyright(C) NRI Netcom, Ltd. All rights reserved.
    S3のデータをBIツールでダッシュボード化してみたい場合
    ダッシュボードの使い方によって設計は変わる
    利用頻度・
    利用者数は?
    分析対象の
    データ量は?
    どういった
    属性の人が使うの?
    従量課金のサービスが良いか?
    時間課金のサービスが良いか?
    小規模?大規模? レスポンス速度は?

    View full-size slide

  15. 14
    Copyright(C) NRI Netcom, Ltd. All rights reserved.
    S3のデータをBIツールでダッシュボード化してみたい場合
    AthenaとRedshiftの料金モデル
    ※他にも、料金モデルは幾つかある
    Amazon Athena
    Amazon Redshift
    ※インスタンスタイプは多数ある
    インスタンス課金
    dc2.large $0.314/h
    1TBのデータ読み取りごとに$5
    SQLクエリ
    利用量/データ料に
    関わらずほぼ定額
    同時実行数は
    インスタンスサイズに
    依存
    レスポンスは
    RDBより遅い
    利用量/データ量で
    料金は大幅に
    変動
    同時実行数は
    AWS側にお任せ
    レスポンスは
    数秒〜数分

    View full-size slide

  16. 15
    Copyright(C) NRI Netcom, Ltd. All rights reserved.
    アーキテクチャ選定の基準、もっていますか?
    レスポンス速度って、どんなものなの?
    データ量が同じなら、同じ速度なの?
    えーっと!?
    (知らんがな)
    計測してみないとわからない

    View full-size slide

  17. 16
    Copyright(C) NRI Netcom, Ltd. All rights reserved.
    3. 計測が大事

    View full-size slide

  18. 17
    Copyright(C) NRI Netcom, Ltd. All rights reserved.
    性能測定
    Athenaの性能を測定してみる
    データサイズは? フォーマットは? 圧縮の影響は? ファイル数は?

    View full-size slide

  19. 18
    Copyright(C) NRI Netcom, Ltd. All rights reserved.
    性能測定
    Athenaの性能を測定してみた
    ファイル数 ファイルサイズ 合計サイズ CSV
    (圧縮なし)
    CSV
    (GZIP圧縮)
    Parquet
    (Snappy圧縮)
    1件 10GB 10GB 3.88秒 247.88秒 エラー発生
    10件 1GB 10GB 3.87秒 29.27秒 1.85秒
    100件 100MB 10GB 3.57秒 4.48秒 1.85秒
    1,000件 10MB 10GB 3.36秒 3.26秒 2.24秒
    10,000件 1MB 10GB 4.07秒 4.17秒 2.76秒
    100,000件 100KB 10GB 11.51秒 12.62秒 11.68秒
    1,000,000件 10KB 10GB 92.95秒 91.38秒 76.35秒
    10,000,000件 1KB 10GB 90.17秒 900秒超 900秒超
    著しく性能劣化するケースがある
    ※ファイル数については、おおよその目安の数

    View full-size slide

  20. 19
    Copyright(C) NRI Netcom, Ltd. All rights reserved.
    S3のデータをBIツールでダッシュボード化してみたい場合
    Amazon QuickSight
    Amazon Redshift
    AWS Glue
    抽出&変換 格納
    クエリ
    クエリ
    可視化
    ちょっとデータを測定しただけでも…
    Amazon Athena
    抽出&変換
    Amazon S3
    Athenaを使おうとしたら
    S3に置くデータの形式が重要なのがわかる
    他のサービスだったら?

    View full-size slide

  21. 20
    Copyright(C) NRI Netcom, Ltd. All rights reserved.
    計測してみよう!!

    View full-size slide

  22. 21
    Copyright(C) NRI Netcom, Ltd. All rights reserved.
    性能測定をする上で、重要なこと
    測定の目的
    測定環境の
    平準化
    実際の環境に
    近づける
    複数回の
    測定
    メトリクスの
    取得
    外部影響を
    最小限に
    変更との
    比較
    分析する

    View full-size slide

  23. 22
    Copyright(C) NRI Netcom, Ltd. All rights reserved.
    性能測定
    性能測定の詳細については、こちらを参照
    NRIネットコムのクラウドソリューション:
    検証レポート.:Athenaにおけるファイルサイズ
    https://cloud.nri-net.com/reports/aws-athena-performance-analysis-2310/

    View full-size slide

  24. 23
    Copyright(C) NRI Netcom, Ltd. All rights reserved.
    4. おまけ

    View full-size slide

  25. 24
    Copyright(C) NRI Netcom, Ltd. All rights reserved.
    今回の検証で、どれくらいのAWS利用料が掛かったのか?
    Athena:$20.81
    EC2:$81.88
    S3:$216.97
    (引用)AWS Billing: https://us-east-1.console.aws.amazon.com/billing/home?region=ap-northeast-1#/bills

    View full-size slide

  26. 25
    Copyright(C) NRI Netcom, Ltd. All rights reserved.
    なぜ、お金が掛かったのか?
    ファイル数 ファイルサイズ 合計サイズ CSV
    (圧縮なし)
    CSV
    (GZIP圧縮)
    Parquet
    (Snappy圧縮)
    1件 10GB 10GB 3.88秒 247.88秒 エラー発生
    10件 1GB 10GB 3.87秒 29.27秒 1.85秒
    100件 100MB 10GB 3.57秒 4.48秒 1.85秒
    1,000件 10MB 10GB 3.36秒 3.26秒 2.24秒
    10,000件 1MB 10GB 4.07秒 4.17秒 2.76秒
    100,000件 100KB 10GB 11.51秒 12.62秒 11.68秒
    1,000,000件 10KB 10GB 92.95秒 91.38秒 76.35秒
    10,000,000件 1KB 10GB 90.17秒 900秒超 900秒超
    1,000万件のGetに$3.7
    それを10回試行⇒3フォーマット
    37$×3=$111
    ※実際のファイル数は、900万件くらい

    View full-size slide