Sorry画面、どうやって出してますか?
『【初心に帰るシリーズ】月額約10円でウェブサイトを設置する』にてAmazon S3でウェブサイトを設置できるよという話をしました。今回はこの応用編のお話をしようと考えております。 「メンテしてます」画面、いわゆるSorry画面をお気軽に出せますというお話です。 「Sorry画面を出さないような運用をしましょう」というツッコミは無しの方向でお願いします。
Sorry画面の出し方
ざっと考えると、Sorry画面を表示できるようには下記のようにします。- 「本番サイトが生きているか」の監視
- 「本番サイトが死んだら」の切換え
面倒ですよね。 通しで考えると、
本番サイトを監視と、なります。
↓ 本番サイトが死んだら… or 止めたら…
Sorry画面サイトを立ちあげ
↓ 本番サイトが復活したら…
本番サイトを表示
これが自動的にできるとラクですよね。
それ、Amazon S3とRoute 53でできます
DNSサービスであるRoute 53にて、サービスのURLにアクセスされたら本番サーバに振るように設定します。![USE S3 23](http://s3-ap-northeast-1.amazonaws.com/corporate-tech-blog-wp/tech/files/2013/05/USE_S3_23.png)
本番サーバが動いています(と、思ってください)
![USE S3 24](http://s3-ap-northeast-1.amazonaws.com/corporate-tech-blog-wp/tech/files/2013/05/USE_S3_24.png)
サーバを止めてみると、当然アクセスできなくなります。
![USE S3 25](http://s3-ap-northeast-1.amazonaws.com/corporate-tech-blog-wp/tech/files/2013/05/USE_S3_25.png)
Route 53の設定に、「本番サイトを監視して死んだらS3に設置しているSorry画面(代替サイト)を表示する」設定を加えます。
「Heath Checks」をクリックします。
![USE S3 26](http://s3-ap-northeast-1.amazonaws.com/corporate-tech-blog-wp/tech/files/2013/05/USE_S3_26.png)
「Create Healt Check」をクリックします。
![USE S3 27](http://s3-ap-northeast-1.amazonaws.com/corporate-tech-blog-wp/tech/files/2013/05/USE_S3_27.png)
- 監視するのはHTTP
- 監視対象の本番サイトのIPアドレスを入力
- 監視するポートの番号はHTTPのデフォルトなので80番
- ホスト名を入力します
- 監視はトップページに対して行うので「/」を入力します。
![USE S3 28](http://s3-ap-northeast-1.amazonaws.com/corporate-tech-blog-wp/tech/files/2013/05/USE_S3_28.png)
入力したら「Create Health Check」ボタンをクリックします。 監視設定ができました。
![USE S3 29](http://s3-ap-northeast-1.amazonaws.com/corporate-tech-blog-wp/tech/files/2013/05/USE_S3_29.png)
「Create Record Set」をクリックして設定を追加します。
- 「Alias」で「Yes」を選び、エイリアス先を代替サイトを指定します。
ここでは、『【初心に帰るシリーズ】月額約10円でウェブサイトを設置する』にて作った代替サイト(「メンテ中です」と表示するサイト)を指定しています - 「Routing Policy」は、「Failover」を選びます
- 「Failover Record Type」は、代替なので「Secondary」を選びます
![USE S3 30](http://s3-ap-northeast-1.amazonaws.com/corporate-tech-blog-wp/tech/files/2013/05/USE_S3_30.png)
次に本番サイトのDNS設定を修正します。
本番サイトのDNS設定にチェックを入れて選択します。
- 「TTL」を「60(ms)」にします
- 「Routing Policy」を「Failover」にします
- 「Failover Record Type」は、本番サイトなのでこちらを優先したいので「Primary」のまま
- 「Associate Health Check」で、ヘルスチェックの設定を先ほど作成した監視設定を選びます
![USE S3 31](http://s3-ap-northeast-1.amazonaws.com/corporate-tech-blog-wp/tech/files/2013/05/USE_S3_31.png)
設定が終わると、こんな感じになります。
![USE S3 32](http://s3-ap-northeast-1.amazonaws.com/corporate-tech-blog-wp/tech/files/2013/05/USE_S3_32.png)
サイトにアクセスしてみると、本番サイトを止めたままなので、セカンダリとして指定したAmazon S3に設置した代替サイトが表示されます。
![USE S3 33](http://s3-ap-northeast-1.amazonaws.com/corporate-tech-blog-wp/tech/files/2013/05/USE_S3_33.png)
本番サイトを稼働させてみます。
本番サイトはプライマリとして設定したので、こちらに優先してアクセスが振られるようになります。
![USE S3 34](http://s3-ap-northeast-1.amazonaws.com/corporate-tech-blog-wp/tech/files/2013/05/USE_S3_34.png)
今回は、本番サイトを停止した状態でRoute 53の設定をしましたが、当然、本番サイトを稼働させたままでも設定できます。
まとめ
代替サイトを立ち上げたままの状態で、本番サイトの稼働/非稼働を切替えるだけで、「メンテ中です」(Sorry画面)を表示されるようにすることができました。代替サイトはAmazon S3に設置されているので、月額約10円とランニングコストは非常に安価です。
本番サイトはAWS上になくても、代替サイトをAmazon S3でDNSをRoute 53でと、AWSで行うようにすれば同様のことを実現できますので、「本番サイトは今AWSにないんだよね…」 という場合でも比較的導入しやすいと言えます。
「いずれAWSにしようと思っているんだけど…」とお考えでしたら、まずはこのあたりからAWSを試してみるのはいかがでしょうか。 ご不明な点がありましたら、AWSについていろいろお手伝いできますので是非お問合せください。
![Toiawase](http://s3-ap-northeast-1.amazonaws.com/corporate-tech-blog-wp/tech/files/2013/05/toiawase.png)