AlibabaCloudでの、実践的なWebアプリケーションの構築プラクティスを公開

エンジニアの森(@mosuke5)です。
今回はAlibabaCloudでの、実践的なWebアプリケーションを構築するためのプラクティスをご紹介します。本記事ではCMSで有名なWordPressを例にご紹介しますが、他のアプリケーションでも十分に応用可能な考え方ですので、是非参考にしてみてください。

7つの設計プラクティス

本内容は、弊社で行っているセミナーのスライドにまとまっていますのでこちらを見てください。
ですが、せっかくのブログ記事なので、本記事ではこのスライドでは語れなかった、プラクティスを追加してご紹介したいと思います。

追加のプラクティス

1.カスタムイメージを活用する

AlibabaCloudでは、カスタムイメージの機能を備えます。
カスタムイメージ機能とは、お客さま自身で構築した仮想マシン(ECS)をテンプレート化して保存しておくことができる機能です。これを利用することで、同じ設定の仮想マシンを簡単に構築することができます。

カスタムイメージを作成すると、仮想マシン(ECS)作成画面のOS選択場面で、選択できるようになります。

このカスタムイメージをうまく活用すると、より効率的な運用を実現できます。
主な、活用場面は以下があります。

(1)ロードバランサに追加するサーバを複製する

ロードバランサで負荷分散をする場合は、当然ですが分散先のサーバは同じアプリケーションが動作するサーバを用意する必要があります。
1台1台設定するのはとても大変なことです。この場合にはカスタムイメージを活用するといいです。
まず、1台のサーバをセットアップし、そのサーバのカスタムイメージを作成し複製することで、サーバ構築の時間を短縮することができます。

(2)ECSのバックアップとして利用する

カスタムイメージ機能はECSのサーバのバックアップにも利用することができます。
例えば、リリース作業前に、カスタムイメージを作成しておくことで、万が一の事態に備えることができます。

また、AlibabaCloud ECSには「自動スナップショットポリシー」という機能があり、自動で定期的にディスクのスナップショットをとることができます。取得したスナップショットからカスタムイメージの作成ができるので、自動バックアップ機能としても活用できます。

(3)ECSのスケールアップ・ダウン

必要なときにサーバをスケールアップ/ダウンできることは、クラウド環境の大きな特徴の1つです。
このスケールアップ/ダウンはカスタムイメージを利用することで実現できます。
詳細は次の項目で説明します。

2.インスタンスサイズを変更できるようにしておく

上記でも触れましたが、必要なときにサーバのインスタンスサイズを変更できること(スケールアップ/ダウン)は、クラウド環境の大きな特徴の1つです。最初の設計時から、数年後のスペックを見積もって構築することはクラウドでは望ましくありません。
急速なビジネスの拡大で、いつどのくらいのスペックのマシンが必要かはわかりません。あるいは、想定よりもサーバスペックが必要ないかもしれません。
インスタンスサイズを変更できるようにしておく、変更する方法を知っておくことがクラウドでは重要です。
今回は、主にインスタンスサイズの変更が可能なサービスであるECSとRDSについて解説します。

ECSのインスタンスサイズの変更

ECSのインスタンスサイズを変更するには下記の手順で行うことができます。(追加ディスクがある場合など、ケースによって手順が少し異なることがあります)

  1. 対象のECSを停止する
  2. 対象のECSのカスタムイメージを作成する
  3. 上で作成したカスタムイメージを使って新しくECSを作成する

ECSのスケールアップにはインスタンスの停止が発生します。
また、IPアドレスなどの情報も変更されます。グローバルIPアドレスを固定したい場合にはEIPを利用することをおすすめします。
もし、プライベートIPアドレスをインスタンスサイズ変更前と同様にしたい場合には、インスタンスを停止後、「プライベートIPアドレスの変更」から行うこともできます。

RDSのインスタンスサイズの変更

リレーショナルデータベースのサービスであるApsaraDB for RDS(通称RDS)でもインスタンスサイズの変更が可能です。ただしRDSのインスタンスサイズの変更を行うには以下の条件を満たしている必要があるので注意が必要です。

  1. インスタンスサイズの変更は従量課金インスタンスのみ可能
  2. インスタンスサイズの変更はAPIを通じてのみ実行可能(ドキュメント)

RDSのインスタンスサイズの変更は、現状は従量課金インスタンスにしか実行できませんが、データベースのインスタンスサイズの変更は拡大するシステムにとっては重要な要素になることは間違いないでしょう。
もちろん、Alibaba Cloudではサブスクリプションインスタンスをご購入いただくほうが価格面ではお得です。
利用するシステムの特性などに合わせて、料金モデル(従量課金かサブスクリプション)の選択が必要になります。

Alibaba Cloudでの料金モデルの使い分けは下記を参考にしてみてください。

Alibaba Cloud ECS、料金モデルの使い分けの傾向と対策

まとめ

クラウドにはクラウドならではの機能や使い方が当然ですがあります。
このようなサービスのメリット・デメリットを理解することでより効率的な設計、運用ができるようになります。
是非、Alibaba Cloudでのシステム設計の参考にしていただければと思います。

この記事をシェアする