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上で。
それ以外のデータ管理等をオンプレミスに。
この場合の課題
→レイテンシ等
ハイブリッドシステムへの移行時に考えること
- インフラ基盤の構成をどう実現するか
- データ:移行とバックアップをどうするか
- 運用をどうするか
ネットワーク分割のベストプラクティス
DirectConnectの活用
DirectConnectをうまく活用。
VPCは暗号化処理などどうしてもオーバーヘッドがかかる。
そこでDirectConnectも併用して活用を。
例えば、本社のDCとAWS間はより高速に転送できるようDirectConnect。
それ以外の支社のDCとAWS間はVPCで。
AWS内にGatewayを立て、各環境間のHubとして実現。
ファイルコピーのベストプラクティス
AWSへのファイルコピーには2パターン考える。
1. S3に直接コピー
2. インスタンスを介してコピー
S3へ
- バケットのリージョンを確認←できるだけ近いところの方がもちろん速い
- 数10MBを超えるならばマルチパート化を活用
- 並列転送して最後に統合する機能がある
- 数十TPSを超えるならばキー名を分散化
- S3への転送が長時間続くと制限を受けることがある
- そのため、キーの頭の3文字ぐらいをランダムに設定することで制限をうけず送れるので非常に速度が改善される
- 無駄なオペレーションはできるだけ使わない
- リスト処理とかを頻繁にやらない
- 転送時は転送だけに注力できるように
VM Import/Exportを使ったシステムコピー
OSイメージごと移行
現在WindowsOSのみ
サードパーティツールの活用
構成管理:Puppet,Chef
監視:AppDynamics、New relic、AppNeta等
ログ:TreasureData等
VPCによるステージング環境テスト
Route53による重み付け
ハイブリッド環境を扱う場合、リクエストをRoute53で重みを付けて振り分けることが可能に。