akiyoko blog

akiyoko の IT技術系ブログです

「JAWS DAYS 2014」に参加してきました

AWSを中心としたクラウド技術が急激に進化し、実際にビジネスで使える環境が出揃ってきました。これからのシステム開発では、AWSを中心としたクラウドインフラの知識も避けて通れないですよね。

ということで参加した今回のイベント、有料でしたが大盛況でした。

「JAWS DAYS 2014」(2014.3.15)


会社の用事があったので、昼過ぎから参加。


各セッションのレポートは、
全Togetter&ブログレポートまとめ #jawsdays – JAWS DAYS 2014 参加レポート Vol.00」もどうぞ。

AWSクラウドデザインパターン for Enterprise

玉川 憲 氏(アマゾンデータサービスジャパン株式会社)
片山 暁雄 氏(アマゾンデータサービスジャパン株式会社)


AWSの利用パターンの話。激混みで立ち見でした。一番混んでいたかも。
やっぱり、AWS構成のベストプラクティスって知りたいんですねー。


ハイブリッド環境のネットワーク構成

  • 1. 「AWS Direct Connect」という専用線サービスもある
  • 2. ソフトウェアVPN
  • 3. HTTPSで全部提供してもよい

ハイパフォーマンスな業務アプリケーション

  • AWSには共有ディスク機能はない。ソフトで実現
  • Floating VPN Gatewayパターン
    • 開発環境を切り替え。VPNの接続口を付け替える

機密情報を扱う業務システム

  • ほとんどのAWSのサービスが、PCI-DSS標準に準拠している
    • ただし、一部のログサービスなどはまだ準拠していない
    • 銀行など高いセキュリティが要求される環境では、どのサービスを使うかを注意しないと
  • 縦深防御
    • 多層の防御構造。一番奥にDBレイヤーを
  • IDS、IPSはもちろん各レイヤーに入れる
  • ELB End-to-End Encryptionパターン
    • Backend-SSLでELBの裏側も暗号化できる

DR(ディザスタリカバリ

  • 話を聞きに行くとツッコミどころの多い「後任者よろしくパターン」が多い
  • コールドスタンバイDC
    • オンプレのデータをS3にバックアップ
    • スナップショットから復旧
  • AWS Storage Gateway」というアプライアンスサービスもある
    • 仮想クラウドストレージをエミュレートして、保存方法を変更せずにバックアップ可能

世界で展開する新しいネットワークサービス「Miiverse 」のAWS活用事例

竹本 賢一 氏(任天堂株式会社)
渡辺 起 氏(株式会社はてな


予告編: http://dev.classmethod.jp/cloud/aws/jaws-days-2014-nintendo-miiverse-and-aws/
AWS導入事例: http://aws.amazon.com/jp/solutions/case-studies/nintendo/
(システムアーキテクチャ概要全体図も)


ゲームに対してもAPIを提供していて、ゲーム中から直接Miiverseの機能を使えるそうな。

これまでの経緯

  • https://miiverse.nintendo.net
  • 2011年末に新ハード(Wii U)の話があり、新しいコミュニケーションサービスの計画が浮上
  • Wii U発売と同時にサービス開始。構築まで1年未満
  • 世界中からのアクセスが想定され、トラフィック増減に柔軟に対応できるインフラが必要だったので、hi1やPIOPSの利用を前提として、AWSに決定

システム概要と構成

  • EC2インスタンス1000台規模
  • マルチリージョン(日本・欧州・北米)。全て Multi-AZ 冗長構成
  • リージョン間をVPNでフラットに結ぶ
  • システム構成は、「システムアーキテクチャ概要全体図」を参照
  • Proxy
    • ELB + Route53 Alias Record
    • Nginx: SSL Termination
  • ELB/HAProxy
    • 内部では ELB, HAProxyで振り分け
  • App/Cache
  • DB
  • 非同期ジョブ
    • TheSchwartzと独自実装。MySQLやRedisも
  • ストレージ
    • 画像の保存にS3。CloudFront経由で配信
  • サーバ構築
    • Chef Server
  • サーバ管理
  • 監視
    • Nagios。稼働中のサーバを動的に自動監視
    • Nagios自体の監視にCloudWatch

苦労話

  • 初日のトラフィック
  • AZ間疎通障害への対処が難しい
  • EBSの障害で、たまにI/Oが全くできなくなることがある

IaaSとPaaSの微妙な関係

田中 慎司 氏(株式会社はてな

  • Hatena Blogではほぼ100% AWSを使っている
  • 他のサービスは、DC+AWSのハイブリッド
  • 2000台超規模(AWSは100台?)
  • IaaS
  • PaaS
    • AWS Elastic Beanstalk, Heroku, EngineYard 等の選択肢
  • 実行環境を選択する際の Where, Why
    • 物理 or IaaS or PaaS
    • 慣れ・経験、運用ノウハウ、サービス・アプリの用件・規模
    • なぜ、EC2 + RDS なんですか??
    • どうなると EC2 + RDS では不適になるのか??
  • はてなの場合
    • ハイパワーのサーバを安価で・・・DC
    • 柔軟なリソースを・・・AWS EC2
    • 小規模での運用・・・Heroku

流行りのDevOps

  • Orchestration
    • Fabric/Capstrano
  • Provisioning(構成管理)
    • Chef/puppet/Ansible
    • infrastracture as Code
  • Immutable Infrastructure
    • Blue-Green Deployment
  • IaaS + DevOps = Private PaaS じゃないの? これがゴールなのかも?

PaaS vs (IaaS + DevOps)

  • 一般的な PaaS の特性
    • Pros) 簡単。専任のDevOpsの人が要らない?
    • Cons) 線形にコスト上昇。柔軟性に欠ける
  • IaaS + DevOps の特性
    • Pros) 柔軟性。高コスト効率。限界値が把握できるので事前に手を打てる
    • Cons) DevOpsの人が要る
  • PaaSが提供するカテゴリ?三層構造+α
    • リバースプロキシ
    • アプリケーションサーバ(中核)
    • データベース(最大の難点)
      • AWS RDS, Heroku Postgres
    • ワーカー・バッチサーバ(これも得意)
        • 状態を持たない系
        • AWS Beanstalk に Worker tier が新設された

PaaSを超えるためには

  • 高コスト効率を求めていくケース
    • 例えば、Auto-scalingのチューニング
  • データベースのチューニング
    • データ構造が複雑なケース、負荷が高いケース
  • 小規模の場合はPaaS、中大規模ならIaaS+DevOpsに軍配?

解のひとつ?となりそうな注目のツール

  • Docker
    • AMIによる運用と比べて柔軟
    • 本番環境へのデプロイが簡単
  • MySQL Pool Scanner(in Facebook)
    • MySQLオペレーションの自動化
  • Apache Mesos
  • Serf
  • PaaSの悪いところは、ブラックボックスな部分があるところ
  • 理想的なPaaS「基本はおまかせ、カスタマイズも容易に」

CloudFrontで実現するセキュアコンテンツ配信と効果のトラッキング

北迫 清訓 氏(アマゾンデータサービスジャパン株式会社)

Blog: Amazon CloudFrontを利用した動画配信入門


CloudFrontで小規模から大規模まであらゆる配信ニーズに答えられるだけでなく、
プレミアムコンテンツなどのアクセス制限が必要なセキュアな動画配信も実現可能
AWS Elastic Transcoder はHLSをサポートしているとのこと。

  • CDN (Contents Delivery Network) サービス
  • サイトの高速化。世界中に効率的に配信が可能
  • CloudFrontのセキュア機能
    • HTTPSサポート
      • 独自SSL対応
    • Geo Restriction
      • 地域によってサービスを制限する
    • Signed URL(署名付きURL)
      • 期間を指定したURLを生成して、配信コンテンツを保護できる

Sigend URL

  • 規定ポリシ
    • 有効化終了時刻
    • 許可コンテンツフルパス
  • カスタムポリシ
  • オリジンサーバにはOAI(Origin Access Identity)で制限できるので、CloudFrontでの経由が必要
  • 認証サーバを作ってあげて、署名付きURLを配布し、署名付きURLでCloudFrontにアクセス

セキュアな動画配信

  • HTTPストリーミング
    • HLS(Apple), HDS(Adobe), IIS Smooth Streaming などがある
    • ただし、動作保証するデバイスが限られる
  • Androidの8割以上がバージョン4系
    • JWPlayer, Flowplayerを使うとよいかも
    • あるいは、HLS??⇒本日はカジュアルにHLSの話を
  • HLSはWebサーバだけで配信可能
  • どうやってセキュアに配信する?
  • AES Encryptionで.tsファイルを暗号化可能
  • ただし、マニュフェストファイル(.m3u8)は保護できない(この保護がポイント)
    • だから、Signed URL??
  • 動画のマニュフェストファイルとセグメントファイルはS3に
  • 認証サーバでURLを返しつつ、マニュフェストファイルを書き換えるのがベスト??
  • HLSセキュアオンデマンド配信

HLSライブ配信

  • LiveEncoderが、マニフェストファイルとセグメントファイルを動的に生成している
  • CloudFrontのBehavior設定でマニフェストファイルを保護することができる
  • マニフェストファイルのURLを署名付きで返せばよい


今井 雄太 氏(アマゾンデータサービスジャパン株式会社)

アクセス可視化

  • CloudFrontにもやっとレポート機能ができた
    • CloudFrontの左側のメニューから「Report and Analytics」
  • Sumo Logic
    • S3上のログを解析してくれる
    • ログの量は 500MB/日まで無料
  • Splunk
  • Cedexis
  • Google Analytics

自前でやるなら

  • hive
  • ダッシュボードは、DynamoDB + JavaScript SDK
  • d3.js

BIを使った解析

  • JasperReport Serverというサービスも