koudenpaのブログ

趣味のブログです。株式会社はてなでWebアプリケーションエンジニアをやっています。職業柄IT関連の記事が多いと思います。

ConoHaのVPSインスタンスが破損した時に思ったこと

諸般の事情でConoHaのVPSで非冗長構成でWebアプリケーションをホスティングしている。

先日、ConoHaのVPSでホスト障害が発生して、そのWebアプリケーションのインスタンスが該当した。

障害は往々にして連鎖するもので、ファイルシステムが破損してインスタンスが起動しなくなってしまった。

なかなか出会うことのない状況なので、やったことと所感をメモしておく。

リカバリ

リカバリー自体は特に問題なかった。

インスタンスのスナップショットを(小労力で障害から回復できるように)自動取得するように設定していたので、以下の手順で事足りた。

  1. ConoHaの障害対応を待つ
    • 収容ホストが変わったようだった(完全に壊れたのだろう)
  2. DNSからレコード削除(少し乱暴だったかもしれない)
  3. 一応TTL待つ
  4. インスタンスを落とす
  5. バックアップのディスクスナップショットからサーバーを再構築
  6. アプリケーションを再デプロイ
  7. DNSのレコードを再登録

これで特に問題なく復旧した。

うまく行かなかったら新規のインスタンスをゼロから作ったり、それに伴ってネットワークの設定を変えたりと(IaCはしていなかったので)手間が相当にかかりそうだったので助かった。

最小限のリカバリープランとして、バックアップを取っておいてとても良かった。

コントロールパネル上での自動バックアップの設定。手抜きで復旧できるようにするなら大事。

f:id:koudenpa:20180309011023p:plain

インスタンス停止中は再構築を選択できる。取得しておいた無事なスナップショットから復元すれば、その状態に戻る。

f:id:koudenpa:20180309011649p:plain

サービスレベル感

今回の例では、障害が発生してアプリケーションが停止しても、そのうち、少労力で復元できるように、程度のサービスレベル感で障害時の復元を計画していた。

つまり、非冗長構成で、定期的なバックアップ取得だけ。

止まってもいい、というポリシーならこの程度でいいのではなかろうか。

止まってはマズいのであれば、ホスト障害程度のレベルの障害には対応できるように冗長構成をしておきたい。

大手のクラウドサービスならマルチAZで構成すれば確実だし、ConoHaであっても各インスタンスの収容ホストは提示されているので、別々のホストのインスタンスで構成すればいいだろう。

『コンピュータは停止するものである』

というのは大前提だ。

極端な話、強烈な太陽フレアが地球に降り注いだら、イレブンナインの耐久性をSLAしているS3だってデータが破損するだろうし、100%のSLAをうたっているRoute53だって止まるだろう。 (そもそも、インターネットがどうこうって状況じゃなくなるだろうけれど)

SLAはしょせんはそのサービスレベルを約束しているだけで、それを満たせるわけではない。 (ConoHaのVPSのSLAは99.99%、今回はそれには抵触したはず)

そんなことをしみじみと思った。

HTTPS化が来た

staff.hatenablog.com

はてなブログHTTPS化の案内が出て、順次HTTPS化できるようになりました。とアナウンスがあって以来、自分のブログの対応順番を心待ちにしていたのだが、先ほど設定画面を開いたら順番が来ていた。

f:id:koudenpa:20180306214234p:plain

というわけで早速設定した。

f:id:koudenpa:20180306214309p:plain

やったー。

f:id:koudenpa:20180306214339p:plain


10秒後。

f:id:koudenpa:20180306214633p:plain

つらたん。

犯人はランス10のバナーだった様子。

f:id:koudenpa:20180306214855p:plain

http -> https にスキームを変えたらレスポンスが返ってこなかった。これは辛い。

俺はバナーを外すよりMixed Contentsを選ぶぜ。


とりあえずHTTPSで配信してくださいお願いします。と問い合わせはしておいた。

f:id:koudenpa:20180306220606p:plain

レスポンスがあるかどうかはともかく、アクションが大事だと思う次第。

ランス10のセーブデータ切り替えツール

f:id:koudenpa:20180304214004p:plain

ランス10のセーブデータが100個とあまりにも少ないので、バックアップとレストア用のGUIを作った。

と思ったら、パッチのVer.1.01でセーブデータの数が10倍に増えた。世の中そんなもんよ。

使い方:

  1. 「Ref」ボタンを押してセーブデータフォルダを選ぶ。
  2. 「<- Backup」ボタンを押すとバックアップ(コピー)される。
  3. 「<- Move」ボタンを押すとバックアップ(移動)される。
  4. 左のフォルダ名の一覧を選んで「-> Restore」ボタンを押すとそのフォルダがレストアされる。

終わり。

GitHubに置いておいた。

github.com

※仮に私以外の人が使用するとしても自己責任でお願いします。


懐かしのWindowsForms。

VisualStudioでポチポチやればアホでも作れるのが魅力。

タブオーダーがぐちゃぐちゃだけれど、別にいいや。使えればよい。


2018/03/06 どうやらパッチで999個にセーブデータ数が増えた様子。

だが、ダウンロードに失敗して当てられていない。


1日経ってダウンロードできたのでパッチ当てた。ツールも一応修正した。

ランス10-2週目後の回収~全クリア

koudenpa.hatenablog.com

↑2週目は海からクリアAできた。その後リロードして実績を取ったりイベントを見たりしていた。

その流れで後の内容も一気にプレイ、全クリアしてしまった。

ランスシリーズが好きな人は納得のいくエンディングを見るまで是非プレイして欲しい。

絶対に満足できるはずだ。

ネタバレに心当たりがないようなら、こんな記事さっさと閉じてプレイに戻った方がいい。

知らないでプレイした方が間違いのない面白さになる。

続きを読む

ランス10-2週目のミカン

ランス10では割愛されている(そもそもレベルアップがシステム上ない)が、あの世界はレベル神という神様にレベルを上げてもらうシステムになっている。

今回、そのレベル神も神魔の枠でプレイアブルになっていて、その中でも最凶のレベル神ミカンはランダム自動発動でカードのランクを45まで上げてくれる。HPダメージと引き換えにな!

CPを取っていると道中にはある程度余裕があるので、2週目ののんびりプレイできる場面ではミカンでのランクアップを楽しんでいた。

なお、こんなことで数ランク稼ぐより、サクッと進めてクリアポイントを貯めた方が結果的には自軍を強化できると思います。完全に趣味。

道中のボス戦では回復をメインに編成する。

f:id:koudenpa:20180228223351j:plain

回復キャラがダウンすると高ランクキャラが出てくるぞ。

f:id:koudenpa:20180228223356j:plain

ボスから受けるダメージよりミカンから受けるダメージの方がデカいので必死に回復して耐える。15ターンしか持たなかったよ。

多分、早雲、リック、ランスのランクが1つずつ上がったのかな? 25%なので、ちょい期待を下回ったようだ。

f:id:koudenpa:20180228223401j:plain

状況にシンクロするかのようなランス君のセリフに笑う。

f:id:koudenpa:20180228223407j:plain


なお、直後の魔人(フルスペック)戦。

f:id:koudenpa:20180228224305j:plain

全く勝つ気がない。

ランス10-初回プレイ感想

発売をとても楽しみにしていたランス10をとりあえずは一周ゲームオーバークリアした。自分が追いかけ始めてからでも10年以上経過している大長編の完結編だ。

ランス10

この瞬間は今しかないので、今の時点での感想を書いておく。

プレイ中の雑なメモをこのブログに貼っていたのだが、プレイ中にしっかりと感想を書いたりするはずもなく、文字通り垂れ流しただけで失敗だった。とはいえ、それはそれで記録なので(カテゴリー『ランス』に)放置。このブログは俺の城なのだ。

とりあえずとはいえ、それなりにプレイした結果の感想なので、相当にネタバレします。注意されたし。

続きを読む