More Related Content
PDF
Kubernetesを使う上で抑えておくべきAWSの基礎概念 PPTX
AWS Elastic Beanstalk のススメ PDF
Alibaba Cloudが1万個のKubernetesクラスタを管理する方法 PPTX
Awsのspot instanceでimmutableinfrastructure PPTX
JAWS-UG 三都物語 2014 今しか役に立たない EC2入門 2014夏 PDF
Let's join in OpsWorks world! PDF
Alibaba Cloud Serverless Kubernetes 徹底解説 PDF
Apsara Conference 2019 コンテナ系サービスのアップデート情報 What's hot
PDF
Service worker が拓く mobile web の新しいかたち PDF
Java + React.jsでSever Side Rendering #reactjs_meetup PDF
Spring Day 2016 - Web API アクセス制御の最適解 PDF
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから PDF
JAWS-DAYS 2015 / 北海道 x 農業 x クラウド PDF
AWS 初心者抜けきれない私がAWS Samurai と AWS Community Builder の特権フル活用したらどんなものが作れるか挑戦する PDF
JAWS-UG 初心者支部 #4 東急ハンズのEC2の使いかた PDF
アプリエンジニアからクラウド専用のインフラエンジニアになってみて PDF
PPTX
PDF
JAWS DAYS 2015 AWS OpsWorksの仕組みと活用方法のご紹介 PDF
PDF
PDF
AWS Summit San Francisco 2017 Werner Vogelsによる基調講演を徹底紹介 PDF
AWS re:Invent 2015に初参戦→気づいたらOSS二つ作ってた PDF
モバイルファースト時代のクラウドネイティブアーキテクチャ JAWS DAYS 2015 PDF
PDF
Application Lifecycle Management in a Serverless World PDF
Behind-the-Scenes and Goals of LINE Summer Internship Program PDF
AWS EC2の自動リブート
- 1.
- 2.
自己紹介
• 株式会社アイビス 代表取締役社長
• ハンドル:かみやん
• Twitter:@kamiyan
• 好きな言語:Java, C++, Objective-C
• 代表作:
– ibisBrowser(アイビスブラウザ)
– ibisMail(アイビスメール)
– ibisPaint(アイビスペイント)
- 3.
- 4.
- 5.
- 6.
- 7.
要件
• 1分に1回cronで起動し、全APと通信
ができるか確認し、5回連続で通信で
きない場合は、EC2インスタンスを
リブートする
• リブート依頼を投げたら管理者に
メールで知らせる
• リブート完了し通信が復帰したらリ
ブートにかかった時間を管理者に報
告
- 8.
仕様
• AP追加やAP削除の度に監視プログラムを
修正するのは面倒!
• EC2インスタンスのタグ付け機能を使って、
「rebootWatch」タグがついているインス
タンスを自動的に監視対象にする
• rebootWatchタグの値を「8080/ping.jsp」
などのような値とし、「http://{対象の
IP}:{タグの値}」にアクセスできるか
チェックする
- 9.
- 10.
仕様詳細
• 言語:Perl (Rubyにしとけばよかった)
•設置場所:小さめのEC2ホストか、社内の
マシン(どっちでもよい)
• リブート依頼の連投にならないように1度
リブート依頼を投げたら15分は再依頼し
ないようにする
• 監視のHTTPリクエストのタイムアウトは
30秒
• 複数台APへのHTTPリクエストはマルチス
レッドとして同時にリクエストして1分以
内に死活の判断ができるようにする
- 11.
ファイル設計 – 状態ファイル
•状態ファイルは、/root/rebootWatch/ に「{インス
タンス名(tag:Name)}.txt」のファイル名で置か
れるテキストファイル
• 1レコードは、「Time Type Message」の3フィール
ドで、フィールドはスペース区切り、レコードは
改行区切り。Messageはオプション。
• Typeは、OK, Timeout, Error, Rebootの3種
• OK or Timeout or Errorレコードが最大10件、
Rebootレコードが最大1件保存される。HTTPリク
エストするたびに上書き保存する
• Timeout or Errorが5回連続するとリブート依頼を
投げる
• Rebootレコードは、リブート依頼を投げると追加
され、リブートが完了して復旧するとレコードが
- 12.
ファイル設計 – ログファイル
•一応、後で調べられるように状態ファイ
ルと同じフォーマットでログファイルを
保存しておく
• ログファイルは、「{インスタンス名}-
YYYYMMDD.txt」というファイル名で1日1
ファイル
- 13.
- 14.
試行錯誤
• 当初の設計では、「今はメンテナンス中な
ので、サービスを停止(ApacheやTomcatを
stop)する」などのときに、うっかりホスト
がリブートすると面倒なので、サービスが
立って(LISTENして)いないときは、リブー
ト依頼を投げない仕様だった
• しかし、実装してみたらAPが過負荷のとき
にLISTENしているのにLISTENしていないと応
答が来る場合があり、仕様を変更して、
LISTENしてない場合も、リブート依頼を投げ
ることにした
- 15.