はじめに
当サイトも運営を始めて1年以上経過しました。記事も随分と蓄積され、SEOの数値も上昇してきました。「継続は力」を感じています。
しかしながら、サイトの成長に伴いVPSの力不足も目立って感じる様になってきました。
画像登録などにリソースの不足が顕著に現れている感じです。例えば登録操作で引っかかりを感じたり、登録していたのに認識できていないなどの現象です。Lightsailのダッシュボードを確認すると余力はありそうなのですが、時たま散見する様になった現象が環境依存かどうかを切り分けたいと考えました。記事にもなりますし、えっちらと重い腰を上げて、環境のアップグレードに挑戦してみます。
インスタンス(WordPress-1)の確認
環境を更新する前に、今の状態を集めてておきます。更新後の影響範囲などが確認できると、サイトの改善要素も確認できます。スナップショットから簡単に新しいインスタンスを作れるので、今回の様なアップグレードにはありがたい機能です。リカバリでも有効に活用できます。さらには、静的IPのインスタンスへの割り当てが自由に行えるので、効率よくインスタンスの切り替えもできそうです。
ただし、静的IPの切り替えには一つだけ注意点がありますので書き残しておきます。
Lightsailで確保される静的IPはLightsail内でのみ有効との事です。(将来的に改定されるかもしれません)料金が固定制なのでこの様な仕様になっているのでしょう。将来的にEC2で運用する等となった場合は、あらためて静的IPの確保やDNS変更などが必要となります。
Amazon Lightsail のダッシュボード
情報
インスタンスの基本情報です。
メトリクス
グラフを見るかぎり、まだ余力はありそうです。
バーストキャパシティはCPUリソースの貯蓄なので、グラフを見る限りは、直近で取り崩す様な高負荷な状態はなかった様ですね。
スナップショット
日時でスナップショットを残しているので、かなり安心して運用することができます。
今回は、スナップショットを実際に利用してみる事で、具体的な使用感なども確認します。
ストレージ
dfでの確認は省略しますが、まだ十分に容量はあります。60件程度の記事ですし、画像のサイズには気をつけているので、その成果でしょう。
ネットワーキング
ファイアウォールの設定はちゃんと確認しておかないと、あとで大変です。とはいえ、ほぼ基本設定のままですが…(^^;
ドメイン
こちらは未着手です。
Amazon Route 53との連携もきちんと設定しておくと良いこともありそうですが、証明書周りではまりたくないので今は「そっ閉じ」状態です。
パフォーマンスの確認
VPCのベンチマークを計測するよりも、Webサイトとしての性能検証をおこなった方が、後々で有効かと思い「PageSpeed Insights」で評価情報を取得しおきます。VPCに限らず課題を可視化しておきます。
PageSpeed Insightsとは
Webサイトの表示速度を簡単に測定・評価できるツールです。測定したいWebサイトのURLを入力するだけで、表示速度の評価スコアや改善すべき項目が表示され、表示速度の改善に役立てることができます。
以下が計測値です。アップグレードでどれだけ向上するのでしょうか。
新インスタンス(WordPress-2)の作成
ひととおり確認を済ませましたので、いよいよアップグレードを実行します。簡単ですが、以下の要項で進めます。
- インターネット側の接続情報は一切変更しない
- DNSの変更はない(静的IPは継続して使用)
- SSH接続の鍵変更はしない
- できる限りダウンタイムを短くする
- 旧インスタンスは移行完了後は抹消
- 切り替え後1週間を猶予とする
新旧インスタンスを行き来しますのでインスタンス名を補足してつけておきます。
- 旧インスタンスはWordPress-1です
- 新インスタンスはWordPress-2です
旧インスタンス(WordPress-1)のスナップショットを作成
移行のトラブルを最小限にするためにも、直近のスナップショットを取得しておきます。とはいっても特に変わった操作はなく、ダッシュボードから「手動スナップショット」を実行するだけです。
スナップショットから新しいインスタンス(WordPress-2)を作成
新しいインスタンスの基本設定を行います。今回は$3.5/月から一つ上の$5/月へのアップグレードです。あらためて確認したのですが、主にメモリ/ストレージ/転送量が倍に増量されます。メモリ倍増は効果がありそうですが、それが性能向上にどんな感じで現れるのか楽しみです。日々の操作などで効果を感じるアップグレードになれば嬉しいですね。
スナップショットの取得ができたら、右横のバーガーメニューから「新規インスタンスの作成」を選び、新しいインスタンスの作成を開始します。
$5/月プライスのモデルを選択します。
ロケーションやオプションはスナップショットの設定を継続しますのでノータッチです。自動スナップショットを有効化
はチェックしておきます。転ばぬ先のつえなので、ぜひ有効にしておいてください。
生成を実行したら、あとは立ち上がるのを待つだけです。こんなに簡単にクローン環境が作れるのも、なかなにすごいと思います。新インスタンス(WordPress-2)が立ち上がったら完了です。
旧インスタンス(WordPress-1)から静的IPをデタッチ
新インスタンスが立ち上がったら、いよいよ公開です。まずは旧インスタンスの「ネットワーキング」タブから静的IPをデタッチします。パブリックIPV4にあるデタッチ✖️
をクリックして静的IPを切り離します。
静的IPはデタッチ操作で解放されることはありません。後ほどのアタッチ操作で新しいインスタンスに接続します。接続の際には名称で選択することになるのですが本書の例では「Staticip-1」と命名されています。
デタッチの確認が要求されますので実行してください。いうまでもなく、この時点からサイトはダウンした状態です。
新たなインスタンスへのアタッチがトラブらない事をお祈りするばかりです。
新インスタンス(WordPress-2)へ静的IPをアタッチ
新インスタンスの「ネットワーキング」タブのからアタッチを行います。パブリックIPV4にあるアタッチ✖️
をクリックして静的IPを接続します。
※画面のスナップが撮れていません、申し訳ありません。
アタッチする静的IPの選択が要求されますので、旧インスタンスに設定していた「Staticip-1」を選択します。
アタッチが完了すればサイトへのアクセスも復旧します。この間わずか1分のダウンタイムでした。簡単で迅速に、環境のアップグレードが行えました。
AWSすごい!
障害時のリカバリーについて
自動スナップショットを使うことで、最悪でも1日前の状態へと復旧できます。同額プランを選択して新しいインスタンスを作成し、静的IPを付け替えるだけです。
特筆すべきはその再現性でしょうか。ただのバックアップでは思った通り復元できないこともままあります。そういった視点から、この様な日時スナップショットが組み込まれていることは非常にありがたい仕様だと思います。蓄積した記事こそが財産なのですから。
新インスタンス(WordPress-2)の設定
アップグレードした環境を確認します。
Amazon Lightsail のダッシュボード
新インスタンスのダッシューボードを確認します。
情報
ちゃんと設定通りに機能しています。
メトリクス
立ち上げたばかりなのでバーストキャパシティは20%にも満たないです。
グラフからもジリジリと溜まっていく様子がみてとれます。
スナップショット
自動スナップショットも有効になっています。
ストレージ
ストレージもきっちり40Gに変更されています。
ネットワーキング
静的IPが設定されインターネットからも問題なくアクセスできています。
今回からIPV6も有効にしてみました。
ドメイン
今回は特に触れていませんので画像も省略しました。
将来、LightSailにDNSを繋ぐことになった際には記事にする予定です。
パフォーマンスの確認
パフォーマンスを確認しましたが、レポート上からはほとんど変化を感じることはできませんでした。
むしろ微妙に悪化してる!?w
いやいや、そんなわけはないだろう…というわけで、各項目を眺めてみると…
TBT(Total Blocking Time)の数値が大きく影響している様です。なので、各指標ごとの変化をみてみました。
指標 | 旧 | 新 | 向上率 |
---|---|---|---|
FCP | 6.7秒 | 6.2秒 | 108%⤴️ |
LCP | 15.3秒 | 13.6秒 | 112.5%⤴️ |
TBT | 1.49秒 | 2.52秒 | 59.1%⤵️ |
CLS | 0.048 | 0.024 | 200%⤴️ |
SI | 10.8秒 | 9.8秒 | 111.3⤴️ |
指標 | 旧 | 新 | 向上率 |
---|---|---|---|
FCP | 2.8秒 | 2.5秒 | 112% |
LCP | 5.6秒 | 5.2秒 | 107.7% |
TBT | 0.09秒 | 0.11秒 | 81%⤵️ |
CLS | 0.01 | 0.01 | 0% |
SI | 3.7秒 | 3.4秒 | 108.8%⤴️ |
各項目に着目してみると、TBT以外は確実にVアップグレードの効果は出ていると思われます。とりあえず、よかったです!
実は、現在のTopページは毎回背景画像が変わるので、計測ごとに少し数字がぶれることがわかりました。本書の計測結果も、およその数値として見ていただければ幸いです。
当サイトはSWELの便利機能におんぶにだっこですから当然の数値かと思います。PageSpeed Insightsの計測からは、Webコンテンツそのものの最適化も必要だと感じています。パフォーマンス100%を目指したチューニングも自己研さんの一つとなりそうです。将来的にはチャレンジしてみたいです。
旧インスタンス(WordPress-1)の削除
新インスタンスで数日運用してみましたが特に問題はありませんでした。
公開した記事も確認してみましたが、気になるリンク切れもありません。
日時のスナップショットもちゃんと採れていますので、旧インスタンスの削除を行います。
Amazon Lightsailは停止/稼働に関わらず課金されるので、不要であれば削除します。
多分不要だと思います。
もしもの際にアクセスする手段が無くなるので、念の為に削除しておきます。だって、何かあった時に面倒じゃないですかぁ。(^^;
インスタンスのバーガーメニューから削除を選択します。確認したら完了です。
あっさり削除してくれます。間違いない様、十分に注意して実行する様にしてください。
大抵、慣れた時に失敗してしまうんですよね。怖い怖い…
まとめ
思った以上に簡単にアップグレードができました。懸念していたダウンタイムもほとんど発生しませんでした。
実際の操作でも性能向上を感じることができました。例えば、本記事の画像コンテンツの登録などは、感覚的にもキビキビした動きを見せてくれます。結構嬉しいですよね。
アップグレードの操作は緊急時のリカバリーにも応用できるのは、すごく良い運用環境だと思います。
安心安全な運用は、なによりも重要なポイントだと思います。
いざその時が来た時に、対処の仕方が明確なのはとても重要です。
メールサービス関連でサイトの引越も考えたりもしているのですが、こういった利便性を知るほど引っ越せないよな…と考えてしまいます。
立ち上げフェーズから、毎日の運用、そしてスケールアップと、知見も積み上がってきました。
積み上げた記事が、これからブログサーバーを立ち上げようとしている方の参考になれば嬉しいかぎりです。