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

マルチAZは冗長性の夢を見るか? / Do Multi-AZ Dream of Redundancy?

cidr
November 02, 2019

マルチAZは冗長性の夢を見るか? / Do Multi-AZ Dream of Redundancy?

JAWS Festa 2019 SAPPOROで発表したスライド

cidr

November 02, 2019
Tweet

Other Decks in Programming

Transcript

  1. マルチAZは
    冗長性の夢を見るか?
    西田 龍斗 (@cidr_cuckooo)
    JAWS FESTA 2019 SAPPORO

    View Slide

  2. 自己紹介  
    ・西田 龍斗(にしだ りゅうと)

    - Twitter @cidr_cuckooo


    ・経歴

    - 2019年1月に個人事業主として開業

    - 2019年3月に釧路高専3年次退学

    以後フリーランスプログラマとしてアプリ
    ケーション開発に携わる。


    View Slide

  3. マルチAZは冗長性の夢を見るか?  

    マルチAZ構成

    組んでますか?


    View Slide

  4. マルチAZは冗長性の夢を見るか?  
    参照 : 東京リージョン(AP-NORTHEAST-1)で発生した..

    View Slide

  5. マルチAZは冗長性の夢を見るか?  
    東京リージョン内単一のAZであるapne-az4というIDのAZで発生。


    複数のAZを併用する「マルチAZ構成」を組んでいれば影響を避ける事が出来た障害
    であったため、SNSやネットメディアではマルチAZを推奨する意見が多く見られた。


    参照 : 東京リージョン(AP-NORTHEAST-1)で発生した..

    View Slide

  6. マルチAZは冗長性の夢を見るか?  

    マルチAZは有効だった!



    どんどんマルチAZ構成を
    使っていこう!


    View Slide

  7. スライドショーの最後です。クリックすると終了します。


    View Slide

  8. マルチAZは冗長性の夢を見るか?  

    本当に??


    View Slide

  9. マルチAZは冗長性の夢を見るか?  

    マルチAZ構成は有効ではあるが・・・


    よく考えると


    ・運が悪く複数のAZで同時に障害が起きるかもしれない


    ・大規模災害時には複数AZやリージョン単位で被害を被るかもしれない


    ・AWSがハッキングされて利用出来なくなるかもしれない


    ・某国から飛んできたミサイルがどこかのデータセンタに落ちるかもしれない


    ・そもそもマルチAZでも防げなかった状況も

    View Slide

  10. マルチAZは冗長性の夢を見るか?  

    Q : ここまで考えるのは過剰じゃないか?


    A : 障害対策・災害対策は楽観的に考えない!



    BGPが間違った経路情報を流したり、全DNSがダウンしたりでインターネットが崩壊し
    た時とかは流石に諦める・・・


    View Slide

  11. マルチAZは冗長性の夢を見るか?  

    そもそもマルチAZ構成は

    大前提です。


    View Slide

  12. マルチAZは冗長性の夢を見るか?  

    提供しているアプリケーションに対して、ある程度は自身で可用性を担保
    できる仕組みを作るべき。

    ・でもマルチリージョンとかハイブリットクラウドは費用が沢山かかる


    ・コールドスタンバイを組んだ所で、通常時は動かないなら無駄に思えるし、予備も落ちたら意
    味がない


    ・そもそもどうすれば良いのか分からない

    View Slide

  13. マルチAZは冗長性の夢を見るか?  

    サービスが停止したら、

    すぐに別の場所で運用開始

    できるような設計を組む。


    View Slide

  14. マルチAZは冗長性の夢を見るか?  

    そうだ。

    コンテナ使おう。


    View Slide

  15. マルチAZは冗長性の夢を見るか?  

    コンテナはいいぞ

    ・1つのアプリケーションを1個のコンテナに閉じ込めていろんな所で再利用できる。移植が簡単


    ・ミドルウェアや依存ライブラリを閉じ込めることが出来るのでホストの環境が汚れない


    ・環境をコードで管理するので、バージョン管理が可能になり、ヒューマンエラーも減る


    ・何台マシンがあろうとコード一つで簡単に展開できる


    ・コンテナやコンテナオーケストレーション、その他周辺サービス群が成熟している

    View Slide

  16. マルチAZは冗長性の夢を見るか?  

    Why Containers?


    View Slide

  17. マルチAZは冗長性の夢を見るか?  

    一般的なマルチAZ構成で得られる可用性(Availability)


    View Slide

  18. マルチAZは冗長性の夢を見るか?  

    コンテナ技術による可搬性(Portability)


    View Slide

  19. マルチAZは冗長性の夢を見るか?  

    可搬性で可用性を補う

    インフラ・AZ・リージョン障害があっても、別の正常なマシンですぐにサービスを提供できる。 


    View Slide

  20. マルチAZは冗長性の夢を見るか?  

    可搬性で可用性を補う

    アプリケーション障害(バグ・脆弱性)があった場合、そのバージョンのアプリをローカルで検証できる。 


    View Slide

  21. マルチAZは冗長性の夢を見るか?  

    可搬性で可用性を補う

    スケーリングが容易になる。(AutoScalingとの親和性が高い) 


    View Slide

  22. マルチAZは冗長性の夢を見るか?  

    コンテナ

    オーケストレーション


    View Slide

  23. マルチAZは冗長性の夢を見るか?  

    Kubernetesを使う

    発音は「クーべネティス」?「クーバネティス」?

    省略してK8s「ケーエイツ」と呼ぶことも。


    K8sのゴールは可搬性・拡張性・自己修復を提供し、サービス運用負担を減らすためエコシス
    テムを整備していくこととなっているので、今回強調したい「可搬性によって可用性を担保す
    る」についても適している。

    KubernetesはGoogleがかつて「Borg」として、社内向けに開発したコンテナ
    オーケストレーションツール。


    デプロイからコンテナ運用の自動化、セルフヒーリングといったコンテナ開
    発を支える複数の機能を持つ。

    View Slide

  24. マルチAZは冗長性の夢を見るか?  

    Docker-Swarmを使う

    Swarmじゃ出来ない事の例として、依存関係にそってコンテナの立ち上げが出来ないが、
    Docker-Swarm + Docker-Composeで解決できるように、Dockerのエコシステムフル活用で
    Kubernetesと遜色なく利用することが出来る。


    ちなみにDocker-Composeもコンテナオーケストレーションツールとして分類される。

    Docker-SwarmはDocker公式で提供されているコンテナオーケストレー
    ションツール。


    Kubernetesと比較し、出来る事は少ないものの学習コストはその分低く、
    Swarmが持つ機能だけでも十分な事もある。

    View Slide

  25. マルチAZは冗長性の夢を見るか?  

    しかし・・・

    Docker-SwarmはKubernetesよりシンプル。

    だが、利用者が少なくドキュメントもK8sほど整っているわけではない。

    マネージドサービスに至っては皆無なので捉えようによってはK8sより学習コストが高くなることも。

    Kubernetesは複雑で学習コストが高い。

    クラウドのK8sマネージドサービスは利便性も高く、各クラウドプロバイダでサービスネイティブに扱え
    るが、そのクラウドプロバイダ内でしか利用できない。

    GCPのAnthosはハイブリッドクラウドに対応はしているものの、AnthosでAWSを利用しようとすると
    EKSほどAWSネイティブには活用できない。

    View Slide

  26. マルチAZは冗長性の夢を見るか?  

    重要なのはクラウドプロバイダそのものを意識せず扱える構成

    クラウドプロバイダやオンプレミスといった事を開発側が意識せずに扱える構成を組む事で


    「可搬性による可用性の担保」を出来る環境が整う。

    View Slide

  27. マルチAZは冗長性の夢を見るか?  

    マネージドサービスを使わない選択肢

    クラウドプロバイダを意識しない、クラウドプロバイダに依存しないとなると、マネージドサービスを用
    いないという選択肢が生まれる。


    マネージドサービスを使うことは、コスト負担減や利便性の向上など、沢山のメリットがある反面、クラ
    ウドプロバイダへの依存度が上がる。


    これは運用スタイルをプロバイダに合わせる必要があったり、障害時の復旧やダウンタイムなどがコ
    ントロール出来なくなる。


    その他にも、各プロバイダ得意とする分野があるのに対し、多くをマネージドで構成するとプロバイダ
    間の連携を取る事も難しくなる。

    View Slide

  28. マルチAZは冗長性の夢を見るか?  

    Rancher等のようなKubernetes as a Service(KaaS)を使う

    Rancherを使うと、Kubernetesクラスタとして
    EKSやGKEといった各クラウドプロバイダの提供する
    Kubernetesマネージドツールを選択できる。

    Kubernetesが目指す目標の中に可搬性がある。

    これはまさに、裏で動くマシンがプロバイダのものか、オンプレなのか関係なくどこでも動かせる事が
    目的になっている。

    しかし実際にそれをやろうとすると学習コストがかかる。

    それを補うため生まれた概念がKubernetes as a Service。

    題にあるが、RancherはKaaSの一つで、コンテナオーケストレーションツールでもある。

    View Slide

  29. マルチAZは冗長性の夢を見るか?  

    課題


    View Slide

  30. マルチAZは冗長性の夢を見るか?  

    データの保存

    コンテナを扱う場合、データの永続化やバックアップ、ストレージ・DBと、注意を払わなければいけな
    い所が生まれてくる。


    アプリケーションの可用性(可搬性)は担保できても、データそのものの可用性(可搬性)を担保するの
    は難しい。


    CAP定理と呼ばれ、「一貫性・可用性・ネットワーク分断耐性」の3つの特性の内、DBは2つまでしか持
    てないのかという長年の研究テーマにもなっている。


    プログラマやシステムエンジニアと呼ばれる職種の人が
    真に頭を使うべき課題なのかもしれない。


    View Slide

  31. マルチAZは冗長性の夢を見るか?  

    HPEによるクラウドに依存しないブロックストレージ

    参照 : AWS、Azure、GCPのどの仮想マシンからでも iSCSIで...
    HPE Cloud Volumes


    対応するどのクラウドプロバイダからもマウント・iSCSIでアクセス可能なフルマネージ
    ドブロックストレージサービス。


    2019/11/01から提供開始で、11/02現在AWS・Azureに対応。


    GCPなど他プロバイダも後日対応予定。


    支払いはプリペイド方式で6万円~


    View Slide

  32. マルチAZは冗長性の夢を見るか?  

    まとめ


    View Slide

  33. マルチAZは冗長性の夢を見るか?  

    「マルチAZなら大丈夫」ではなく「マルチAZは前提」

    ・冗長性や可用性は、マルチAZであることが前提。


    ・クラウドプロバイダに頼り切らず、自身でも出来る事は無いか考え、取り組む。


    View Slide

  34. マルチAZは冗長性の夢を見るか?  

    可搬性で可用性を補う

    ・負荷分散や障害対策のための構成以外にも、色々な手法で高可用性を実現することが出来
    る。


    ・コンテナ技術で、可搬性をもって可用性を補う事も可能。


    ・様々な手法が考えられるが、クラウドネイティブ時代においてはコンテナを用いる手法が適し
    ている。

    クラウドネイティブ・アーキテクチャ 可用性と費用対効果を極
    める次世代設計の原則 (impress top gear)

    View Slide

  35. マルチAZは冗長性の夢を見るか?  

    クラウドプロバイダに依存しない

    ・AWSやGCP、Azureなど様々なクラウドプロバイダが溢れており、それぞれ得意なことなど特徴があ
    る。


    ・一つのクラウドプロバイダだけに依存せず、ハイブリッドな構成を考えたり、そもそも裏側でどのマ
    シンが利用されるかを意識しない事も可能になりつつある。


    ・AWSで組んだ構成を全く同じようにGCPで組む必要は無い。良いとこ取りをし、片方のプロバイダで
    の障害を別のプロバイダでカバーできるような構成を組む。

    View Slide

  36. マルチAZは冗長性の夢を見るか?  

    謝辞

    スライド作成に協力してくれた


    ・内村和博様

    ・三浦一樹様


    本当にありがとうございました!


    View Slide

  37. マルチAZは冗長性の夢を見るか?  

    ご清聴ありがとうござ
    いました。


    View Slide