振り返ると旅行中に発見したWiFiは空港職員用の暗号化された1箇所のみでした。ja.uncyclopedia.info/wiki/%E3%83%AD%E3%82%B7%E3%82%A2%E7%9A%84%E5%80%92%E7%BD%AE%E6%B3%95日本では私がWebサービスを監視する。キューバではWebサービスが私を監視する。1grp巡回してくるのでハイド避けスキルレベルは上げておいたほうがいい。インターネットに接続する技術1泊100ドルオーバーの外国人専用ホテルに宿泊すれば1時間500円くらいでインターネット使えると、どこかのブログに書いてあった。WiFiカフェは一度も発見できなかった。現地の暇な若者は野球を観てた。CASA(民泊)を利用すると1泊15ドルくらいで泊まれる。インターネットはもちろん無い。アメリカと国交ないためアメリカ系サイトには登録されていないことが多い。イタリア語とかで検索したら大量に検索で引っ掛かった。シャワーからお湯が出る宿に当たる確率は50%(2回中1回)だった。どこも気のいいご婦人がオーナーで、めっちゃ親切。換金(Exchange)日本円を換金できるのは空港の両替所だけだった。ユーロなら繁華街でも換金できる。レートはどこもほぼ同じ。正規ショップは1本500円オーバー。浮浪者からは3本1ドルで購入できたが2本はシケっていて火が付かなかった。タクシーはぼったくられるタクシーは20分交渉しても、宿で教えてもらった現地価格には下がらなかった。バスは30円くらいで超安い。全てメーターなしの事前交渉。2kmの市内で値切って最安値600円。長距離乗り合い4人乗りタクシーが120kmで1人1700円。医者よりタクシードライバーの方が給料いいらしい。現地向けのショップで50円で2L。観光地向けのショップだと250円で2L。キューバ生まれのカクテルであるモヒート1杯は250〜350円くらい。同じ失敗を2度繰り返すことはエンジニアとして失格なので考えうる限りの対策をとってみました。アプリサーバを冗長化したアプリサーバが1台のみでした。複数台あれば片肺でサービスダウンは発生しなかったはずなので、ロードバランサを導入してアプリサーバを2台構成に変更しました。サーバのセキュリティ設定を見直した以前はノーガードでした。AWSのようなセキュリティグループが存在しないクラウドサービスでは、Firewallなしでは危険すぎます。よって設定を見直して、次のような設定に変更しました。nginxのエラーページ設定について確認したhttpサーバが死亡したときに、nginx単体でエラーページを表示するための設定確認と検証を行いました。マシンイメージのバックアップを取ったサーバ再構築に時間が掛かってサービスの復旧が遅れたので、各サーバのマシンイメージ(スナップショット)を取得しました。Pythonのpipファイルの設定に時間が掛かりました。依存関係やmysqlライブラリがバグっていたりと3系はバッドノウハウが多いです。各ミドルウェア間の試行錯誤が無くなったので迅速に復旧できました。1,000円/月ロードバランサは、Webからボタン1つで導入できました。設定に迷って、よく判らなかったところRDBの未停止バックアップってどうすればいいか判らない。AWSだとDBの自動バックアップがありポイントインタイムリカバリで簡単に好きなタイミングに戻せます。slave構成に分けてバックアップ時にslaveを切り離して、バックアップを取って戻してレプリケーションさせるといった、泥臭い方法しかないのかなぁ。いったRDB周りの手間を良い感じでマネージドしてくれるAmazonのRDSは、やっぱ値段高いだけの付加価値が付いていて素晴らしいです。社内の先輩が教えてくれました。独りで新規WEBサービスを開発・運用した際の知見の続編となります。こんな記事書くことになるとは思いませんでした。九死に一生を得たのはログインデータを持たないキュレーション系サービスであったため情報漏洩の発生を考慮せずに済んだことです。ご迷惑をお掛けしてしまったユーザの皆様に本当に申し訳ない気持ちでいっぱいです。Flood攻撃を受けてしまったWebサーバ管理者のみなさま、本当に申し訳ありませんでした。m(__)m最後になりましたが、仮想サーバを運営されている運営会社のご担当者様、迅速なサポート対応とアドバイスありがとうございます。復旧対応で楽できました。障害が起きたWebサービスは個人で運営しているサービスです。2016年2月、障害から20日後にサービス再開しましたがアクティブユーザは以前の18%です。回復の目処は立っていません。冗長化していないサーバがウイルス感染し、その後の対応も後手後手に回ってしまいました。2016年1月末に起こるべくして起こった障害について記事にしてみました。ご迷惑をお掛けしてしまい本当に申し訳ありません。Attack)を他のWebサイトに行うウイルスに感染して、確認していませんが他のサービスをSYNフラッド攻撃していたと思います。ウイルス感染時にサーバのsshdを書き換えられsshで接続できなくなりました。振り返ると今回の障害は起こるべくして起こった障害でした。・ウイルス感染したサーバの設定は、ファイアーウォールがOFFだった・サーバが冗長化されていなかった・障害期間中に簡易Webサーバを立てて、経緯をユーザ報告すべきだった。今回の失敗で学んだ教訓は、Webサービス運営において基本的なことだと思います。長期間のサイト停止は既存ユーザからもGoogleからもページ評価を不可逆的に大きく損ない、復旧後も長期間に渡って信用ならないサイトとして扱われ続けます。サービス中断の影響が大きいため各サーバは2系統用意して冗長化したシステムを構築すべきしょう。2016年のインターネット上には無数のウィルスが存在しています。ファイアーウォールは必ず有効にすべきです。十分に吟味したセキュアなサーバをもって挑むべきでしょう。可能であれば、エンジニアも2系統いれば皆幸せになるんじゃあないかな。そのとき何が起こっていたのか自分で作ったサービスは愛着があります。右肩上がりを続けるPV数を眺めるのは楽しいものです。承認要求が満たされ続ける日々でした。Analyticsを眺める生活。休暇を取り海外で過ごしていたある日、空港のWiFiからサイトに接続してみたところ何故か応答が返ってきません。パソコン開いてsshで接続するもアクセス出来ませんでした。何かあるなとメールを開くとクラウドサーバを運営している会社から、次のような連絡がありました。```textこのたびお客様にご利用いただいております、VPSにおきまして高パケット通信が生じている状況を確認いたしました。緊急措置として該当VPSをシャットダウンさせていただきました。```つれー、人気サービスつれーわー、と思いながら停止されたサーバを再起動して苦情メールを書きました。転送量不足なら対応はいきなりシャットダウンじゃなくて、帯域制限じゃないですか?と次のような返事が結構早く返ってきました。flood)と見受けられるような通信が発生し高パケットとなっていたようでございます。こちらの件につきまして、ご認識がない場合VPSのセキュリティ対策や原因特定などを行っていただけますと幸いでございます。```運営会社に平謝りしつつ、外部への攻撃は意図したものではなくウイルスのせいだ云々と言い訳し、サーバを今度は自分の手で停止しました。ウイルス感染した以上、再構築しかありません。海辺でモヒート飲みながら直してしまえば良いと当時は思っていました。キューバビーチリゾートとして有名なキューバ。空港で周りの乗客を見渡すと、みんな浮かれています。地上の楽園キューバは治安はよく、医療費は外国人観光客すら無料です、住民は学費も無料、配給制をとっており生活必需品はほぼ全て配給所でタダ同然の値段で手に入るため餓死者もいないとか。ビーチでは、どこかのフリー素材みたいな写真が撮れた![image2.JPG](https://qiita-image-store.s3.amazonaws.com/0/65312/e08a6623-35da-d566-0c5f-4db0b2f4922b.jpeg)そうです。キューバは**ガチ社会主義国**なのです。ハバナの配給所では50mくらいの列が出来ていました。