Post on 09-Feb-2017
俺と「 AWS 外部から観測」JAWS-UG 金沢 第 10 回勉強会
ふぁらお加藤
ProfileNameふぁらお加藤 / @PharaohKJBelongToKanazawa.rbJAWS-UG 金沢Job & WorksPhalanXware (Freelancer)OCR system com / .NETISDB-T MFC / Linux C++Social Game PHP / JavaInformation App AngularJS / CakePHPFactory Automation .NET
運用における観測のモチベーション提供しているサービスが想定外のタイミングで異常になった場合、なるべく早く通常に戻したい。
通常とは?やはり立場が違えば通常は違いますよね?
通常の定義提供者からみた通常提供したい内容が「正しく」「使える速度で」提供でき、これらを「構成する要素が全て想定どおり動き」、「望んでいないものは提供していない」こと。
通常の定義お客様からみた通常欲しい内容が「正しく」「使える速度で」提供してもらえること。
通常に戻したい - 1ゲーム提供サイトから数分間、お客様へのレスポンスが滞ると、強制的に「メンテ中です」となる。原因レポートを提出しないとアプリを再開することはできない。
ゲーム提供サイト
ユーザ
サービスサーバ
通常に戻したい - 2不安がったお客様からあらゆる手段で運営に連絡をいただく。お返事は相当がんばらないといけない。なかなか信頼は取り戻せない。
ゲーム提供サイト
ユーザ
サービスサーバカスタマーサポート
ありとあらゆる方法
発生したら高コストこのようなことが「お客様からみた異常」が発生するので、時間がかかるとどんどんコストが膨らんでいってしまう。
Series1
予想される異常トリガマスタデータの設定ミスアクセス過多乗っ取りハードウェア障害XaaS 障害
内部から観測閉じたネットワーク、セグメントといった内部から観測すると、お客様に最終的に提供できているものと違う可能性がどうしてもある。
サービス提供サイト
ユーザ
サービスサーバ
外部から観測お客様からみたサービスが異常じゃないかを確認しないといけない。
サービス提供サイト
ユーザ
サービスサーバ
お客様にできるだけ近いかたちAWS で構成されたサービスに対しても、お客様から「通常」に見えるかは確認すべき
外部・内部から観測あるある• 内部 DNS を使っちゃって、社内からのみアクセスできて異常を目視できない。• 外部からのアクセスで管理者ツールメニュー見えちゃう・・・。• 時限式イベントがでちゃってる、隠しページが隠れてない!隠れたまま!
外部観測は手間がかかる・・・結局何を観測すれば?ツール使ってみた例と、やってみた事例を紹介
さくらのシンプル監視• プロトコルと FQDN を指定して、簡単な監視をしてくれる。• 月額 21 円。 ( さくらクラウド内部の場合は無料 )
• https で使ってみた。• 現時点では nagios 。 ( アクセスログで確認 )
• Slack と 電子メールで通知がくる。
使ってみたSlack の画像
他にやった経験• 外部に CI サーバを用意する。• 定期的に実行し、以下を記録し続ける
• トップページダウンロード速度、ハッシュ、サイズ• リンクを辿って 4xx がないか• IMG タグはあってるか• ssh や MySQL などで接続して「失敗する」ことを確認する
サービス提供サイト
CI
サービスサーバ
そして得た知見http get が平均から 2 倍ぐらい遅い時間がある。内部観測 zabbix と比較。バッチ処理中にアクセスがあるととか発生していた。DB をスケールアウトして対応。( 見せられる画像がないのでこれは他プロジェクト )
外部観測は開発しながらやりましょうサイト、サービス製作者は、レギュレーションを意識しながら製品を作ることができる。みなで「通常」を策定できる。スロウクエリイ、殺すべし!
まとめ外部観測の重要性について話した。AWS で作ったサービスを簡単に外部から観測する方法を紹介した。
ふぁらお加藤
ご清聴ありがとうございました