AWS初心者が陥りやすい運用アンチパターンから学ぶ成功の法則 – Developers.IO TOKYO 2019 #cmdevio
本記事は、2019年11月1日(金)に開催されたクラスメソッド主催の技術カンファレンス「Developers.IO 2019 TOKYO」にて行われたJIG-SAW小嶋一毅氏 のセッション、「AWS初心者が陥りやすい運用アンチパターンから学ぶ成功の法則」のレポートです。
【11/1(金)東京】国内最大規模の技術フェス!Developers.IO 2019 東京開催!AWS、機械学習、サーバーレス、SaaSからマネジメントまで60を越えるセッション数!
セッションの概要
システム運用を内製で行っている企業、組織の方も多いと思います。しかし、一言で”運用”と言っても監視、バックアップ、障害対応、セキュリティパッチの適用や日々の定常作業、またはそれらの自動化など運用業務は多岐にわたり、抱える課題も様々です。どこまで内製で行うのか、またリソースやスキルの問題で内製化が難しい、アウトソースすることで業務効率化や負荷軽減、課題解決ができるのかといった悩みを持つ方も多いのではないでしょうか。本セッションでは、1200案件、数万台の運用・監視実績を誇るJIG-SAWのエンジニアが“AWS初心者が陥りやすい運用のアンチパターン“から見る成功の法則を丁寧に解説いたします。また、成功事例として「オンプレからクラウドへのLift&Shiftをしシステム運用をアウトソースすることでビジネス価値の向上と負荷軽減を実現した」株式会社ビーイング様にもご登壇いただきます。
スピーカー
- JIG-SAW 小嶋一毅氏
- 株式会社ビーイング 繁原靖氏
レポート
JIG-SAW社について
主な業務 - マネージドサービス:システム運用 - IOT - 研究開発 - ロードローラーの自動運転の開発など
システム運用の成功とは?
- 止まらない!
- 疲れない!
- 危なくない!
の3つの実現を目指すこと。
セッションでは、運用の代表的なアンチパターンの5つを紹介し、成功するための解決策を示していきます。
5つのアンチパターンとその解決
アンチパターン1: 監視が出来ていない
- 正確な監視が出来ていないことが多い
- 正確な監視が出来ていないと、例えばサービスが止まってしまっても自分たちで気づけず顧客のクレームで初めて気づく、ということが起こり得る。
アンチパターン1の解決策:
正しい監視をしましょう。
「正しい監視をしましょう」というのは当たり前の話ではあるが、監視の設計が分からないという相談を(小嶋氏が)受けることは多いとのこと。
正しい監視を行うには、まず上流から監視しサービスの正常性の確認(Webページの応答が返ってくるか、など)を第一とすること。アプリケーションログなどの監視は二の次。
クラウド、PaaSのようなマネージドサービスでは監視は不要と考える人もいるが、クラウドでもPaaSでも監視は必要。 マネージドサービスであっても落ちる時は落ちる。
監視ツールは使い慣れたもので良い。ただ、それぞれ特徴はあるので使い方は見極めるべき。 例えばCloudWatchでは外形監視が標準では行うことは出来ないので、外形監視を行う場合は他のツールを検討するなど。
アンチパターン2: 監視しすぎる
- 各メトリクスでしきい値を設定してアラートが出過ぎ、運用負荷が高まる
- 監視ツールは自動化するためのものなのに、アラートが出過ぎると手動で運用しているのと変わらなくなってしまう
アンチパターン2の解決策:
適切なインシデントのみ通知するようにするにしましょう。
例えばエラーログを監視するにしても、エラーログだからと言って全て通知するのは不適切。通知するアラートはクリティカルなアラートのみに絞る。
アンチパターン3: 稼働目標が高すぎる
- サービスを絶対止めてはいけない、など 稼働率を上げる=コストがかかる
- あらゆる障害に対処しようとすると際限がない
- AZ障害に備えてマルチAZ→リージョン障害に備えてマルチリージョン→クラウド自体の障害に備えてマルチクラウド・・・
アンチパターン3の解決策:
損失と構成に置けるコストのバランスを見ましょう。
アンチパターン4: 想定外を想定していない
問題を想定した手順書、対応フローを作成することは多いが、全ての問題を想定できるわけではない。クラウドサービス自体の大規模障害など、ふだん想定できない問題が起きる可能性はある。
アンチパターン4の解決策:
想定外の事象に備えましょう
想定外の事態が発生した時のために、以下のような準備をしておくと良い。
- エスカレーション/コミュニケーションフローの整備
- ユーザ向け障害アナウンスの用意
- DR環境の準備
アンチパターン5: 運用を意識していない構成
- AWSには便利なマネージドサービス、PaaSサービスがあるので、基本的にそれを利用して運用負荷を下げるのが良い
- データベースにRDSを利用するなど
- しかし、既存のシステムをクラウドに移行した場合、なるべく構成を変えたくない
- そのままでは運用負荷が下がらない
アンチパターン5の解決策:
クラウドネイティブな運用を意識しましょう。
既存の構成をそのままクラウドに移行した場合でもAWSの運用を楽にするツールを使うことができる。 例えばRDSの導入は難しくても、セキュリティを強化するためにGuardDutyを利用することはすぐに可能。 そのほかCloudWatch, CloudTrail, AWS Configなども構成に関係なく利用できるので、できる限り積極的にこうしたツールを利用するのが良い。
事例紹介
株式会社ビーイング 繁原氏が登壇。
- ビーイングについて:
- 土木工事積算システムGaia、工程管理ソフトBeingManagementなどを開発・販売している会社。
- BeingCollaborationというサービスをJIGSAWと連携しクラウドへ移行した。
移行のタイムライン
- 2016年 既存オンプレのリプレースでクラウド利用を検討
- 6-8月 移行業者選定開始、JIGSAW選定
- 10月 移行プロジェクト開始
- 2018年8月 AWS環境でサービス開始
当初はリフト&シフトでオンプレ環境をそのまま移行した。そのため紹介したアンチパターン5に自分たちも当てはまっていたと感じる。
2018年に新規サービスを、今度はクラウドネイティブで開始した。これで運用もクラウドネイティブに即したものとなった。
また、サービス運用の人数が少なかった(クラウド移行前で3名)ため、深夜等の障害の対応が大変だった。 そのため、運用をJIG-SAWに一部委託した。
運用委託範囲の切り分け: - 社内システム系サーバ:自社管理 - 顧客サービス提供サーバ:JIG-SAW - 稼働率確保・深夜休日対応
これにより運用負荷は下がり、現在は社内の運用メンバーは移行前よりも少ない。
終わりに
紹介した5つのアンチパターンに提示した解決策で対処することで、最初に掲げた
- 止まらない!
- 疲れない!
- 危なくない!
運用を実現できる、というメッセージで本セッションは終わりました。
受講しての感想
運用のアンチパターンとその解決策を提示する、という構成で、運用をどう正常化していけば良いかを分かりやすく伝えるセッションでした。 オペレーション部である私としても学びは多かったです。
「正しい監視をする」「適切なインシデントのみ通知する」といったことは、当たり前と言えば当たり前なのですが、それを当たり前にはきちんとした検討が必要であり、相当の労力を要します。 しかし、行わなければアンチパターンに陥ってしまう、という意識を持って今後も監視に向き合いたいと改めて思いました。
以上、「AWS初心者が陥りやすい運用アンチパターンから学ぶ成功の法則」のセッションレポートでした。