AWS上のアプリケーション運用が抱える課題とは?
—今回の注目機能は「マネージド運用監視」ということですが、これまでもクラウドポータルは「AWSの運用を簡単に」というコンセプトでさまざまな機能を出していましたよね。なにが違うのでしょうか?
平山 これまではAWS環境のサーバ管理をサポートする機能を提供してきましたが、今回はサーバではなく、そのうえで稼働するアプリケーションの管理にまで踏み込んだ機能になっています。AWSでは基本的に、OSより上の階層はユーザが運用することになっていますから、もちろんアプリケーションの運用監視もユーザ自身でやらなければいけません。このアプリケーション運用もいろいろ課題があるので、今回はそこにフォーカスしました。
—確かにAWSで「アプリケーションは自分で運用しなきゃいけない」というのは聞くようになりましたよね。でも、AWSもいろいろサービスを出してますし、そういったものを使ってなにかうまいこと運用できたりはしないんですか?
平山 アプリケーションの運用で一番課題になるのが、障害時の対応です。サーバやアプリケーションに問題があったときに、いかに早く復旧するかということですね。AWS環境だと、たとえばEC2インスタンスを冗長化して、ロードバランサで振り分ける構成にすることで、万が一どちらかのサーバに障害が起きた場合でも、別のサーバに振り分けることでシステム停止を避けられます。また、アプリケーションのパフォーマンスによって自動でインスタンスを増減(=スケーリング)させるAuto Scalingの仕組みを利用して、障害となったインスタンスを自動で復旧させる方法(Auto Healing)などもあります。とはいえ、たとえば社内システムのサーバの場合、冗長構成にするほどコストはかけられない、ということもありますし、アプリケーションの仕様的にAuto Healingでは対応できないこともありますので、意外と可用性を高めるためのAWSアーキテクチャを利用できないケースも少なくないですね。
—なるほど。そのような場合は、アプリケーションの運用も自分でやることになるんですね。こういうケースでは実際、どうやって運用されてるんですか?
平山 オンプレミスでも使っていたような運用監視ツールでアプリケーションを監視しているケースは多いですね。専門ツールを使わなくても、どうにかしてアプリケーションの状況を監視して、通知がきたら人手で対応するのが一般的です。でも、「人手で対応」と言っても、急いで復旧したい時にできることは「アプリケーションを再起動する」とか「EC2インスタンスを再起動する」とか、特別なことではないんですよ。だったら、その復旧作業も自動化できたらいいとは思いませんか?
—思います!そこでクラウドポータルの新機能が登場………ということですね。
それで、クラウドポータルではなにを監視できるの?
平山 今回追加した新機能では、アプリケーションの運用監視から自動復旧までをマネージドサービスで提供します。アプリケーションの状態をなんらかの形で監視して、設定した条件になったら通知、あらかじめ設定した手順で復旧する、という流れですね。監視にもリソース監視、プロセス監視、サービス応答監視などいくつか方法が分かれています。
—リソース、プロセス、サービス応答の違いはどこにあるのでしょうか?
平山 リソース監視では、CPUやメモリ使用率などリソースの負荷を監視します。CPU使用率が80%を超えたら通知する、といった感じですね。プロセス監視では、アプリケーションのプロセスが監視対象になります。たとえばWebサーバの場合は、httpdというプロセスがあるので、それを監視します。サービス応答監視は、プロセスが“生きているかどうか”だけではなくて、アプリケーションがきちんと応答できる状態かどうかを監視するんです。
—アプリケーションがきちんと応答できるかどうか……それってどうやって監視するんですか?
平山 AWSのロードバランサのヘルスチェック機能を使って、サービスの応答状況を監視します。30秒ごとにヘルスチェックをかけて、タイムアウトしないか、正常なコードが返ってくるかなどを確認しています。これに失敗したら異常発生の通知を上げる形ですね。クラウドポータルの管理画面から、監視対象のインスタンスやポートなどの項目を設定するだけで簡単に監視をスタートできます。しかも、監視対象を400まで設定できて、ロードバランサの利用料が月額2,000円くらい※で済みます。コストをおさえて使えるのもポイントです。
—低コストは嬉しいポイントですね。ちなみに、プロセス監視とサービス応答監視はどう使い分けるのでしょうか?
平山 たとえば、アプリケーションでもプロセスは動いているけれど、応答ができていない、ということも多くあります。こういうとき、ユーザが使おうとするとエラーになっちゃうんですよね。こういった異常は、プロセス監視では検知できないので、サービス応答監視でアプリケーションがきちんと応答できているかを確認する必要があります。稼働しているアプリケーションの種類によって、プロセスだけ監視すればOK、ということもありますし、使い分けてもらえればと思います。
このほかにもはてな社のクラウド型運用監視ツール「Mackerel」などと連携させることもできます。「Mackerel」のURL外形監視機能を使えば、Webサイトが、外からアクセスするユーザにきちんと表示されているかどうかまで細かく監視することもできますよ。
自動復旧も自社にあわせた形でカスタマイズ可能!
—なるほど。そうしたら、今使っているアプリケーションの特性や、どこまで監視しないとマズイのかなどのレベルによって、運用監視も使い分けができる、ということですね。では、自動復旧の方はどうなるんですか?
平山 自動復旧は、基本的にはクラウドポータルで異常の通知を受けたら、自動で復旧処理を動かすことになりますが、システム構成などにあわせて対応できます。たとえば、単純にEC2インスタンスを再起動するだけなら、クラウドポータルの機能で復旧できますし、サービス再起動とEC2インスタンスの両方あわせて実施したい場合はSIOS Coatiと連携して復旧します。
さらに、複数のアプリケーションを決まった順番で再起動させたい、などの複雑な処理もAWS Systems Managerの機能にて事前にパワーシェルでスクリプト化しておき、「カスタマイズAPI」というスクリプト自動実行の機能を利用することで対応できます。もちろんいつ、どんな処理が実行されたか、といったレポートやログもクラウドポータルでまとめて管理できますよ。
—運用監視も復旧方法も、自社システムの事情にあわせて自由に選べて組み合わせできるってことですね。これはかなり嬉しい機能ではないでしょうか。
平山 そうですね。AWSでも運用監視や復旧に使えるサービスもいろいろ出していますし、そういったサービスにうまく乗れれば便利なんですが、そうではないアプリケーションも多くあります。となると、高額な運用監視ソリューションを導入するか、情シスの方が担当して手作業でなんとかするしかないのも現状でした。低コストで導入できて、情シスの負担を減らす方法として、クラウドポータルのマネージド運用監視・自動復旧機能を使ってもらえたらと思います。
- AWS運用管理・自動化ツール「クラウドポータル」
-
「はじめてでも運用できる」 「もっと使いこなせる」 独自開発ツール
- マネージドクラウド with AWS
-
はじめてのAWSから 一歩進んだ活用までトータルサポート
まとめ
「AWSに移行さえすれば運用も全部ラクになる!」ワケではないらしい、というのはなんとなく知られてきた感がありますが、とはいえ、その対策が「情シスが手作業でアプリケーションを再起動する」ではあまりに大変すぎです。クラウドネイティブなシステムであれば、AWS側だけでうまくできるのでしょうが、一足飛びにクラウドネイティブにするのも無理がありますし、社内システムをフル冗長化するのはコスト的にちょっと…という事情もあるでしょう。その中で、コストもおさえながら、監視から復旧までサクッと自動化できてしまうのは嬉しいのではないでしょうか。運用監視の悩みの現実的な解決策と言えるはず。
今回、運用監視・自動復旧をテーマに大きな進化を遂げたクラウドポータル。次はどんな機能強化がされるのか、期待して待ちたいと思います!
お役立ち資料をダウンロード
「AWS運用管理・自動化ツール「クラウドポータル」」のダウンロードをご希望のお客様は、
以下必要事項をご入力ください。