[レポート] サービスをスケールさせるために 〜 AWS と AWS利用者の技術 #jawsdays #jd2018_i

2018.03.19

3/10 に開催されました JAWS DAYS 2018 にて、こちらのセッションが開催されました。聴講してきましたのでレポートしたいと思います。

スピーカー

  • 荒木靖宏さん
    • アマゾン ウェブ サービス ジャパン株式会社
    • 技術統括本部 シニアマネージャー ソリューションアーキテクト

スケーラビリティおよびサービス可用性を重視するワークロードは多数AWS上に存在しています。 ネットワークやServerlessはじめインフラはユーザが直接制御することができません。

AWSはそこに大きな投資をしていますが、利用者は利用者の出来る範囲で様々な対処法を編み出しています。 それらをまとめてお伝えします。

資料

※後日公開されるとのことです

レポート

  • やりたいこととAWSの間(みなさん)が大切
    • サービスをスケールさせるためにユーザがやることは?
  • アジェンダ
    • AWSの機能追加
    • 新機能にフォーカスするためのアウトソース
    • 地理的な拡大 = 海外展開
    • +α

新機能追加

  • 典型例
    • AWS Media Services
    • 以前はAWSのサービスを組み合わせて作っていた
  • 自分たちで作っても良し、マネージドサービスを使っても良し

面倒のアウトソース

  • AWS PrivateLink
    • 自前のサービスを他の顧客に提供する仕組み
    • SaaSサービスをインターネットにださずに
      • NLB使ってマーケットプレースで販売できる
      • VPC Peeringのかなりの部分を置き換えられるのでは
  • Inter-Region VPC Peering
  • Direct Connect Gateway
  • 思いついたんだけどお金がない・面倒 ということを解決する

地理的な拡大

  • DynamoDB Global Tables
  • 大阪ローカルリージョン
  • AWSへの期待
    • 見えないところをしっかりやってほしい
  • それに答えるための施策
  • 冗長化した 100GbE の Network
    • リージョンなくてもエッジロケーションはある
  • トランジットセンター
    • Direct Connect (DX) による接続
    • データは通り過ぎるだけ、何かが保存されるようなことは無い
  • メトロファイバー
    • キャリア以外で一番多く運用しているのが AWS だという話もあるくらい
  • カスタムルータ
    • AWS で作った
    • AWS の利用傾向として、南北(対外)よりも東西(AZ内)のトラフィックが多い
    • 利用形態にあわせた設計
  • EC2は最初からSDNベース
  • ネットワークのカスタムチップも作った
    • 25GbE
    • インスタンス向けには20GbE
    • Annapurna Labs
    • C5インスタンスで使われている
  • Amazon EC2 C5 インスタンス
    • EC2ソフトウェアスタック全体をオフロードする最初のインスタンス
    • AnnapurnaとAWSが開発した最初のシリコンを使用
    • 最適化されたバージョンのLinux KVMをベースにした完全に新しいEC2ハイパーバイザ

+α

  • "Everything fails, all the time" - Werner Vogels (CTO, Amazon.com)
  • 「全ては壊れる」ことを前提にしましょう
    • 障害を未然に防止しようとするのでは無く
    • 障害を自動で検知し、障害が自動で対処される仕組みを設計する
  • Auto Scailing - 自動スケールアウト
    • リソース不足を事前に防止
    • リソースの変動を前提とし自動で対処
  • Automatic Feedback Control - フィードバックの自動制御
    • WAFによってアプリケーションレイヤの保護を設定
    • 攻撃を未然に防止しようとする考え方
  • CD Test Automation - 開発サイクルとテストの自動化
    • 失敗を未然に防止する
    • 上を説得する >「止まってる時間は損失しかないんですよ」
      • ダッシュボード作ろう
  • Game-Day Testing - 本番を想定したテスト
  • Error Injection - 障害の注入
    • 日々やってるのがGame Dayとは違う
    • 障害が起きてもシステムが想定通りに振る舞うことを確認するために、継続的かつ意図的に障害を引き起こす
    • Netflix/SimianArmy
    • Netflix では四半期に1回は AZ ごと落とす

まとめ

  • クラウド自体を進化させるのは事業者の役割
  • 基礎コンポーネントの提供は事業者だけが出来ること
  • AWS製のマネージドサービスも登場している
  • クラウドを使い、使い方を深めるのはサービス提供事業者
  • クラウドの限界を知り、それを前提として設計するのが現実

  • QA
    • まずはテストをして下さい