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

名刺データ化システムにおけるAWSとGCPのマルチクラウド活用への挑戦/Challenge to utilize AWS and GCP multi-cloud in business card data conversion system

Sansan
November 12, 2018

名刺データ化システムにおけるAWSとGCPのマルチクラウド活用への挑戦/Challenge to utilize AWS and GCP multi-cloud in business card data conversion system

■イベント
Sansan Builders Box 2018
https://jp.corp-sansan.com/sbb2018/

■登壇概要
タイトル:「名刺データ化システムにおけるAWSとGCPのマルチクラウド活用への挑戦」
登壇者:Data Strategy & Operation Center Development Group インフラエンジニア
大澤 秀一

▼Sansan Builders Box
https://buildersbox.corp-sansan.com/

Sansan

November 12, 2018
Tweet

More Decks by Sansan

Other Decks in Technology

Transcript

  1. େᖒ लҰ(Shuichi Ohsawa) • !PITBXB • ٕज़ϒϩά IUUQTCMPHKJDPNBOJOGP • ݩ1)1FSɻ࠷ۙ(PݴޠͰπʔϧ։ൃ

    • Yࡀɻݟͨ໨೥ྸ  Data Strategy & Operation Center Development Group ΠϯϑϥΤϯδχΞ
  2. Sansan Builders Box Architecture VPN Gateway NAT ZONE Compute Engine

    Autoscaling Cloud Load Balancing ZONE Compute Engine Autoscaling VPC NAT gateway VPN Gateway VPN Connection Web Application Batch Processing DB Data Processing AWS Cloud Stackdriver Logging Vision API
  3. Sansan Builders Box • マネージドサービスを積極的に活⽤ • 3層アーキテクチャ + バッチ •

    オペレータ⽤⼊⼒サイト • ⾃動化API (OCR含む) • EC2がメイン、ECS、AWS Batchも増えている • データベースは基本的にAurora。⽤途に応じて Redshift、 DynamoDB、 CloudSearch • データ化フローの制御にSimple Workflow (SWF)を利⽤ AWS VPC VPN Gateway Web Application Batch Processing DB Data Processing AWS Cloud NAT gateway
  4. Sansan Builders Box GCP • 名刺画像データのOCR処理プロセスの中で Cloud Vision APIを採⽤ •

    データ⾃動化を担うAPIサービスの⼀部をGCPに移⾏ • HTTP Load Balancer + GCE • ⾼速にレスポンスを返すよくあるAPIではない • 画像データを解析した結果を返すのでマシン リソースを⼤量に消費する • c4.8xlarge(36 vCPU) で 0.8 RPS/台程度 • レスポンスタイム ⼗数秒 VPN Gateway NAT ZONE Compute Engine Autoscaling Cloud Load Balancing ZONE Compute Engine Autoscaling Stackdriver Logging Vision API
  5. Sansan Builders Box • Stackdriver Loggingによるログ収集、GCSによる⻑期保管 • Cloud Audit Logging:

    GCPにおける操作履歴 • VPC Flow Logs: ネットワークトラフィックをキャプチャ • Linuxのauditd, Windowsのイベントログ • Loggingエージェントでログをパース • アプリケーションログはAWS側にあるFluentdサーバに送信 • AWS NLB + FluentdにVPN経由で送信 Logging on GCP
  6. Sansan Builders Box • クラウド間の通信はインターネット経由(HTTPS)とVPNを併⽤ • AWS VPNの上限 (最⼤ 1.25

    Gbps)を考慮 • VPNはDBなどのプライベート接続なやログ転送に利⽤ • APIへのPOST(画像データ)はインターネット経由 Data Transfer
  7. Sansan Builders Box • VPCからインターネットへのアウトバウンドに対して コストが発⽣する • アウトバウンドのデータ量を減らす • 画像をJPEGからWebPに変更(50%圧縮)

    • JSONからMessagePackに変更(75%圧縮) • AWSのデータ転送料⾦が約30%下がったのが追い⾵に クラウド間のデータ転送に注意する
  8. Sansan Builders Box • 通常のGCEとプリエンプティブVMのインスタンスグループを作成 • プリエンプティブVMを有効活⽤してコストダウン • CPU使⽤率ではなくスループット(RPS)によるスケーリング •

    アプリケーションの性能に即した形 • AWSにあってGCPにない機能はツール⾃作でカバー • スケジュールベースのスケーリング • Cloud Schedulerがリリースされたので移⾏する予定 Auto Scaling
  9. Sansan Builders Box • AWS • ユースケースに合わせたインスタンスタイプ • コンピューティング最適(C5), メモリ最適(R5,

    X1), GPUインスタンス(P3, G3) etc • CPU、メモリが決められている • GCP • カスタムマシンタイプによる柔軟性 • CPU性能が画⼀的。CPUバウンドな処理だとスループットが厳しくなる ことも • 起動時間が早い ※ Linuxの場合 Compute Engine
  10. Sansan Builders Box • AWS • マルチリージョンの敷居が若⼲⾼い • リージョン限定したい場合は安⼼感がある •

    VPNの帯域に注意する • GCP • マルチリージョンの敷居が低い • リージョン限定したい場合は注意が必要 • VPNの拡張性が⾼い Networking
  11. Sansan Builders Box • AWS • シンプルで使いやすい • バックエンドインスタンスの負荷を⾒ていい具合に分散する •

    GCP • 必要な設定要素がおおく、やや難しい • プレウォーミング不要 • 複数のリージョン間へのリクエストを⾃動的に割り振る • バックエンドにGCSも可能(画像やCSS, JSなど静的コンテンツに便利) • ゾーン内のインスタンスへの分散はラウンドロビンで均⼀ Load Balancer
  12. Sansan Builders Box • AWS • εϙοτΠϯελϯε: EC2のキャパシティに応じて最⼤90%割引 • εϙοτϑϦʔτ:

    キャパシティ指定していい具合にスポットを活⽤ • ϦβʔϒυΠϯελϯε(RI): 前払いなし、⼀部前払い、全額前払い • コンバーチブルRI だとインスタンスタイプの変更も可能 • ⼀括請求に紐付けることで他のAWSアカウントも割引が効く • GCP • ϓϦΤϯϓςΟϒVM: 80%近くの割引。値段固定 • ܧଓར༻ׂҾ: 起動時間に応じて⾃動的に割引。⻑時間稼働へのコスト削減 • ֬໿ར༻ׂҾ: CPUとメモリをコミットすることで割引。前払いなし Pricing
  13. Sansan Builders Box • AWS • σʔλอଘ࣌ͷ҉߸Խ: 新規作成時に暗号化設定する必要がある • ⾮暗号化から暗号化への変更が難しいものもある

    • Ϣʔβݖݶ(IAM):グループ機能のサポート、細かい制御が可能 • GCP • σʔλอଘ࣌ͷ҉߸Խ: 全サービスがデフォルトで暗号化される • Ϣʔβݖݶ(IAM): グルーピングや細かい作業が難しい • 最近β版がリリースされたがまだまだ機能として不⼗分 Security