Web サイトを高速化する #1 ECS のアップグレード

このブログサイト (https://bigriver.jp) を高速化する話です。

Google が提供している PageSpeed Insights でこのブログを分析したのですが、あまり結果が良くないことがわかりました。

以下は”パソコン”の結果です。

以下は”モバイル”の結果です。

パソコンのスコアが75、モバイルのスコアは42とイマイチな結果です。 

この PageSpeed Insights ではスコア だけではなく、時間がかかっている要因を具体的に提示してくれており、それを1つ1つ解消していくことでスコアアップにつながります。

しかし、今回は安直にブログをホストしているECS のスペックをアップすることでスコアがアップするか確認してみます。安直=簡単で手間のかからない方法です。 その他、以下の安直な手法で簡単にスコアアップ出来ないか検討中です。

  • Redis を利用しDBアクセスを高速化 (ApasraDB for Redis)
  • CDN を利用しWebアクセスを高速化 (Alibaba Cloud Dynamic route for CDN)

1. 変更前のECS の性能

今利用しているECS インスタンスは ecs.xn4.small というタイプファミリーです。 以下は公式ドキュメントのスクリーンショットですが、1vCPU と1GBメモリです。 CPU自体もBroadwell なのでHaswel アーキテクチャとなり最新のSkylake よりも遅いものです。

https://jp.alibabacloud.com/help/doc-detail/25378.htm
https://jp.alibabacloud.com/help/doc-detail/25378.htm

また、スターターパッケージで購入しているため、インターネットトラフィックについては30Mbps という上限があります。

今回、よりハイスペックなタイプファミリーに変更することでスコアアップ出来るか実際にアップグレードしてみます。

2. ECS のアップグレード

2.1. コンソールから”設定を変更する”でアップグレード

Alibaba Cloud コンソールにログインし、ECS インスタンスの管理画面から”設定を変更する”を実行します。

ウィザードが起動するので”続行”をクリックします。

バーストタイプの4vCPU、8GBを選択します。

帯域幅を200Mbps へ変更し、サービス規約を確認し、”注文の確認”をクリックします。

しかし、”サービスエラー”とのことで失敗です。

“The operation is not permitted. Due to the instance was from starter package.

ErrorCode: InvalidOperationStarterPackage”

とのことで、今利用しているスターターパッケージではコンソールからのアップグレードは出来ないとのこと。

といことで、コンソールからのアップグレードではなく、イメージから新規に作成することにします。 

2.2. カスタムイメージから新規にECS を作成

まずは既存のホストを停止します。 Wordpress のデータベースにMySQL を利用しており停止してカスタムイメージを作成することがより確実なためです。

ECS の管理画面から”停止”を実行します。

確認画面で”OK”をクリックします。

停止後に、”カスタムイメージの作成”を実行します。

該当のECSの操作メニューから”カスタムイメージの作成”をクリックします。

イメージ名とイメージの説明を入力し、”作成”をクリックします。

作成したカスタムイメージから”インスタンスの作成”を実行します。

2vCPU、4GBメモリのバーストタイプを選択します。 2.1.では4vCPU、8GBメモリにしていましたが思ったより課金が高価だったので変更。

カスタムイメージを選択します(実際には選択済みの状態)。

途中の他の設定は省略しますが、購入を完了します。

2. DNS のレコード変更

bigriver.jp のAレコードを変更します。 今回、パブリックIPが変わるため、DNSレコードでの切り替えも必要になります。

Alibaba Cloud DNS の管理画面から該当レコードの”編集”をクリックします。

値を新しいECS インスタンスのパブリック IPアドレスに変更します。

Elastic IP を利用している場合、Elastic IP の紐付けの変更だけでDNSの変更は不要だったのですが、今回はElastic IP は使用していませんでした。

TTL の有効期限が切れるのをまって、名前解決できるかどうか確認します。

正常に変更されたことが確認出来ました。

Webブラウザからも正常にアクセス出来ることも確認出来ています。

3. PageSpeed Insights によるスコアの確認

以下が結果です。 パソコンは若干スコアアップしたのですが、モバイルは落ちています。。。 結論として、インスタンスの性能アップはPageSpeed Insights のスコアの改善にはつながりませんでした。

アップグレード前アップグレード後
スペック1vCPU
1GB メモリ
30Mbps
2vCPU
4GB メモリ
200Mbps
パソコン7482
モバイル4237

4. まとめ

今回、ブログをホストするサーバのスペックをアップすることでPageSpeed Insights のスコアアップを目指したのですが結果は出ませんでした。 PageSpeed Insights の分析結果に従いボトルネックを一つ一つ解消するのがベストのようです。

また、Alibaba Cloud ECS のスターターパッケージ はコンソールからスペックアップ(設定の変更)出来ないことも結果としてわかりました。 今回紹介したとおり一度カスタムイメージを作成し、そのカスタムイメージから新たにECS インスタンスを生成することでアップグレードは出来ましたが、パブリックIPアドレスやプライベートIPアドレスが変わることの考慮が必要となります。 パブリックIPアドレスはElastic IP アドレスを利用することで、プライベートIPアドレスは別途変更することも出来るので何とかなるとは言えますが少々手間がかかります。 このあたりはスターターパッケージを利用する場合の注意事項となりそうです。