AWSのSLAとAmazon EC2上のシステム障害対策方法とは?

    こんにちは。マーケティング担当の山﨑です。
    突然ですが、皆さんはアマゾン ウェブ サービス(AWS)のSLAをご存じですか?
    実はAWSでは200近くある各サービスごとにSLAが決められています。※2020年8月現在

    そこで、どのサービスにどれくらいのサービスレベルが保証されているのかごく一部ですがご紹介したいと思います。最後に、万が一障害が起きた場合に備えたおすすめの対策についても紹介します。

    良く使われるAWSサービスのSLA

    利用者が多いAWSサービスのSLAは以下の通りです。各サービスにはそれぞれSLAが適用される条件が決まっていますので自分の利用するサービスについては必ず確認してみてください。

    サービス名SLA補足
    Amazon Elastic Compute Cloud (Amazon EC2)99.99%マルチAZの場合
    シングルインスタンスの場合は90%
    Amazon Elastic Block Store (Amazon EBS)99.99%マルチAZの場合
    Amazon S399.9%
    Amazon RDS99.95%マルチAZの場合

    この中でも利用者の多いAmazon EC2のSLAについて詳しく見てみましょう。

    単一のEC2インスタンスのSLAは90%

    公式サイトを見ると、単一のEC2インスタンスのSLAは90%との記載があります。

    単一のEC2インスタンス

    AWSは、商業的に合理的な努力を払って、個々のAmazon EC2インスタンス(「単一EC2インスタンス」)が、単一のEC2インスタンスが各時計時間(「毎時」にデプロイされている時間の少なくとも90%の時間ごとの稼働率を持っていることを確認します。コミットメント」)。いずれかのシングルEC2インスタンスが時間ごとのコミットメントを満たさない場合、そのインスタンス時間のシングルEC2インスタンスの使用に対しては課金されません。

    引用元:Amazon Compute Service Level Agreement

    90%というと一日24時間のうち少なくとも21.6時間は稼働を保証しますが、残りの2.6時間は保証出来ませんということになります。絶対に止められないシステムをEC2インスタンス上で動かしている場合、それでは困りますよね。

    Amazon EC2上のシステム障害対策

    EC2インスタンス上のシステムを障害が起きても止まらないようにするには、ユーザー側で対策を考えておく必要があります。

    単一のEC2インスタンスの障害対策としては、EC2インスタンスやアプリケーションの再起動を行うという方法があります。普段使っているPCでExcelが固まったのでPCを再起動するイメージです。

    EC2にはAuto RecoveryというEC2インスタンスを再起動する機能がありますが、Auto Recoveryはインスタンスに乗っているアプリケーションまでは再起動できません。
    そこで便利なのが、アプリケーション保護ソフトウェアSingle Server Protection(SSP)です。

    SSPはOS上のアプリケーションを監視し、障害を検知するとアプリケーションの再起動やEC2インスタンスの再起動により復旧を試みるソフトウェアです。障害対策は必要だけど、あまりコストは掛けられない場合に適しています。

    AWSはマルチAZ配置を推奨

    単一のEC2インスタンスのSLAや障害対策について触れましたが、実はAWSとしてはEC2インスタンスを単一で使うことは推奨していません。

    アプリケーションの可用性とパフォーマンスに関心を払うお客様は、耐障害性と低レイテンシーを実現するために、アプリケーションを同一リージョン内の複数 AZ にデプロイすることを望んでいるということです。各 AZ は高速なプライベート光ファイバーネットワークで相互に接続されているため、アプリケーションのフェイルオーバーを、AZ 間で中断なく自動的に実行できるようなアーキテクチャを簡単に設計できます。

    引用元:リージョンとアベイラビリティーゾーン

    「複数AZにデプロイし、アプリケーションのフェイルオーバーを、AZ感で中断なく自動的に実行できるようなアーキテクチャ」を実行するのにおすすめの手法がHAクラスターです。コストはそれなりにかかりますが、金融業や製造業などでシステムが止まると金銭的損失が出てしまうような場合に適した障害対策です。

    HAクラスターソフトウェアの中でもAWS上での導入実績が多いのがLifeKeeperです。

    LifeKeeperは、システムの障害を監視し、稼動系に障害が生じた場合に待機系に自動的に切り替えを行うことで、システムダウンタイムの時間を短縮し、ビジネス損失を最小限にします。

    AWS上でのHAクラスター構成パターンやLifeKeeperについての資料はこちらからダウンロードできます。

    まとめ

    AWSのSLAとAmazon EC2上でのシステムの障害対策について紹介してきましたが、以下の3点覚えておいていただけると嬉しいです。

    1. AWSの各サービスにはSLAがありサービスレベルが保証される条件も違うので利用前には必ず確認
    2.  EC2インスタンスは99.99%の可用性を担保するなら複数AZへの配置が必須
    3. 複数AZに配置したEC2インスタンスを障害発生時にフェイルオーバーさせるのがHAクラスター

    関連記事

    SNSでもご購読できます。