AWS Summit Tokyo 2013 Day1 レポート

6/5-6/6に開催されたAWS Summit Tokyo 2013のレポートです。
まずはDay1の模様です。


昨年に引き続きの参加だったのですが、今回はさらに参加者が多く感じました。
登録者数9429人という規模。去年の2倍だそうです。


Day1は主に上級者向けのテクノロジーセッションに参加してきたのですが、
昨年に比べると、よりエンタープライズも意識した「ハイブリッド」のテーマが多く見られたように感じました。
ハイブリッド環境での利用事例も実際に出てきていて、次のステップに着実に進んでいるようです。

以下、聴講した中で特に興味深かった2セッションのメモを残しておきます。
なお、資料は後日公開されるそうなので、気になる方はそちらをご覧ください。

クラウド技術を活用したリアルタイム広告 "Logicad"の入札・配信・ログ解析

ソネット・メディア・ネットワーク株式会社 開発リーダー 安田 崇浩氏

Logicad

Logicadは、リアルタイム広告配信サービスを提供。
ユーザからの1アクセス毎に広告権を広告主間で入札する仕組みをサービス化。
広告主は最適なユーザに自社の広告を打ち出せる。
ウェブサイト側は入札制度により最大の広告料収入がある。
広告主・ウェブサイト両者にメリットがあるサービス。


1秒間に数万件の入札処理を高速で処理しなければならない
AWSだけでは実現できない
→オンプレミスも利用。

  • CPU性能を極端に高くしなければならない
  • 3億件のユーザ情報を1ms以内に応答しなければならない
    • SSDを活用したKVSを利用。AEROSPIKEを活用

局所的な性能を実現するにはやはりオンプレミスが必要。

Logicadでは入札処理を行う高性能が求められる箇所はオンプレミス
それ以外の広告配信部分はAWSを活用。

AWSの活用シーン

広告配信の結果の蓄積のために。
RabbitMQを利用し、出力先をS3に。
広告主向けレポート配信Webアプリケーション
→S3に格納された配信結果ログを定期的にEMRで集計分析→DynamoDBに格納→アプリケーションはDynamoDBから情報取得

ハイブリッドを実現する仕組み

入札処理情報(オンプレミス)と広告配信部分(AWS)を連携する仕組みに非常に工夫がある。
オンプレミス-AWS間の接続はAWS Direct Connectを利用。
専用線接続になるので非常に高速に。
Direct Connectの利点

  • 速い
  • 安い

DirectConnect(ビットアイルのDirect Connectサービスを利用) の場合、EC2インスタンスとの接続のレイテンシが約4msのみ。
ダウンロードの通信コストも1TB辺りインターネット経由より1/4の価格に。

ここで更に課題。

レイテンシが4msで短くなったとはいえ、通常のLAN間のレイテンシに比べると40倍程度かかってしまう。
そこで、通信を効率よく行うための仕組みが必要に。

  • 複数のコネクションを同時に張るようにする方法
  • 1コネクションで複数のメッセージを送信する方法

2つを検討して、1コネクションで複数メッセージを送信する方法を採用。
そこでRabbitMQを利用。
キューを導入することでレイテンシが多少発生してもレスポンスを待つことなく複数のメッセージを連続で送付できる。

ハイブリッド構成を支えるAWSテクノロジー

アマゾンデータサービスジャパン株式会社プリンシパルソリューションアーキテクト 荒木 靖宏氏

ハイブリッドの代表的な利用シーン4パターン

1.開発での利用パターン

本番はオンプレミス、開発はAWS
この場合の課題
→環境の持ち運び
→再現性

2. DRで利用するバターン

いざというときに復旧できるようにデータをAWSにおいておく
この場合の課題
→データ同期
→データベース同期
→誘導・切り替え

3. 複数のシステムがハイブリッドでやり取りするパターン

一部の業務アプリがオンプレ、一部がAWSで実現する
この場合の課題
→移行、データ移行
→切り替え
→監視、制御

4. 1つのシステムがハイブリッド
バースト対応、バッチなどを大規模な処理が必要な部分をAWS上で。
それ以外のデータ管理等をオンプレミスに。
この場合の課題
→レイテンシ等

ハイブリッドシステムへの移行時に考えること
  • インフラ基盤の構成をどう実現するか
  • データ:移行とバックアップをどうするか
  • 運用をどうするか
ネットワーク分割のベストプラクティス
  • ログインする必要のないELB,RDS,Elasticache用のサブネットを作る
    • これらはスケールすると勝手にIPを食いつぶす→/22,/24あたりで大きめに切っておく
  • ログインする必要のあるEC2は目的別に
  • AWSAPI使用にはインターネット接続が必要
    • EIPを使用
    • NATインスタンスを使用
    • オンプレ側インターネット線の使用
  • AWSのリソースへのアクセスは原則ホスト名でアクセスを
DirectConnectの活用

DirectConnectをうまく活用。
VPCは暗号化処理などどうしてもオーバーヘッドがかかる。
そこでDirectConnectも併用して活用を。
例えば、本社のDCとAWS間はより高速に転送できるようDirectConnect。
それ以外の支社のDCとAWS間はVPCで。
AWS内にGatewayを立て、各環境間のHubとして実現。

ファイルコピーのベストプラクティス

AWSへのファイルコピーには2パターン考える。
1. S3に直接コピー
2. インスタンスを介してコピー

S3へ

  • バケットのリージョンを確認←できるだけ近いところの方がもちろん速い
  • 数10MBを超えるならばマルチパート化を活用
  • 並列転送して最後に統合する機能がある
  • 数十TPSを超えるならばキー名を分散化
    • S3への転送が長時間続くと制限を受けることがある
    • そのため、キーの頭の3文字ぐらいをランダムに設定することで制限をうけず送れるので非常に速度が改善される
  • 無駄なオペレーションはできるだけ使わない
    • リスト処理とかを頻繁にやらない
    • 転送時は転送だけに注力できるように

インスタンス

  • rsyncとか使うならインスタンス上に転送すればOK
  • Tsunami-UDP、Adpera、Skeedなどが高速転送を実現する数多くのツールもある
    • Tsunami-UDPはObama of AmericaのPJでも活用された
ブロックデバイスコピーのベストプラクティス

S3へ

  • AWS Storage Gateway
    • キャッシュ型と保管型がある
    • オンプレミスのローカルにデータを格納して高速に処理させつつ、非同期でS3に転送するなら保管型を

インスタンス

  • DRBDを利用
  • 高遅延の場合はDRBD proxy
VM Import/Exportを使ったシステムコピー

OSイメージごと移行
現在WindowsOSのみ

データベースの同期

キャッシュメモリの内容も含めコピーするには?
転送最適化サービスを利用して同期を実現

  • CloudOpt
  • Silver Peak
運用支援サービス
  • IAM
    • ユーザの権限を分けることが可能
  • STS
    • シングルサインオンなどの仕組みをすでに持っている場合等に一時的にユーザに権限を与えることが可能に
サードパーティツールの活用

構成管理:Puppet,Chef
監視:AppDynamics、New relic、AppNeta等
ログ:TreasureData等

VPCによるステージング環境テスト
Route53による重み付け

ハイブリッド環境を扱う場合、リクエストをRoute53で重みを付けて振り分けることが可能に。

SDKによるサービスカスタマイズと省力化

サードパーティ製も含めるとほぼ全ての言語を網羅

まとめ

AWSクラウドはハイブリッド構成への近道
その時、意識すべきことはシステムを'''疎結合にしていくことが重要'''。