この記事の目次
スケールアップとは
スケールアップとは、サーバーそのものをより高性能なタイプに変更することによって処理能力を向上させる方法です。
なおWebサービスなどを運用しているサーバーの処理能力を向上させるには、サーバーそのものをより高性能なタイプに変更する方法と、同じようなサーバーの数を増やして処理を分散させる方法の2通りが使われます。
それぞれ前者をスケープアップ、後者をスケールアウトと呼びますが、この2つの方法の違いからスケープアップの特徴について紹介します。
スケールアップはサーバーの入れ替え
スケールアップは、サーバーそのものをより高性能なタイプに入れ替えることで処理能力を向上させます。今使っているサーバー用のコンピューターを廃止し、より高性能なコンピューターを導入して、それまでと同じシステムを設定する方法がスケールアップです。
例えば、コアが2つのサーバー用パソコンから、コアが8つのサーバー用パソコンに入れ替えれば、処理能力の向上を期待できます。また、搭載しているメモリーを8Gバイトから32Gバイトに増やすことで処理能力を向上させるケースもあります。
スケールアウトは台数を増やすこと
今回紹介するスケールアップとは違う方法がスケールアウトです。スケールアウトはサーバーの数を増やすことで処理能力を向上させます。
スケールアップとの違いは、既存のサーバーをそのまま利用し、さらに同じ能力のサーバーを導入して処理能力を向上させられるので、よく利用される方法です。
ただし、既存のシステムがそのまま使えるとは限りません。台数を増やしても処理できるようにシステムの構成を見直しが必要なケースもあります。
スケールアップは高コスト
もし、企業のデータセンターで運用しているサーバーに対して、スケールアップとスケールアウトの両方で処理能力を向上できるとしたら、一般的にスケールアップは採用されません。それはスケールアップにかかるコストが高いことが理由です。
スケールアップでは、既存のサーバー用コンピューターを廃止して、より高価なサーバー用コンピューターを新規に導入します。コンピューターの性能が2倍になれば価格も2倍で済むとはかぎりません。はるかに高価なサーバーの導入が必要になるケースもあります。
一方、スケールアウトは今と同じサーバー用コンピューターと同じものを導入するだけで、処理能力の向上が可能です。設定にかかる費用が必要ですが、高価なサーバー用コンピューターを導入するのに比べれば安価に済むのがメリットです。
AWSならサーバーの入れ替えが容易
先ほどスケールアップとスケールアウトとをコスト面で比較しましたが、切り替えにかかる時間で比較した場合、設定が不要な分スケールアップが有利です。さらにAWSのようなクラウドで運用する場合、コスト面ではそこまで大きな違いはありません。
AWSなどのクラウドでは、サーバー用コンピューターを使った時間に応じて課金されるのでスケールアップのコストが高くなく、コンピューターの入れ替えが容易です。
そしてAWSでは用途に合わせて幾つものタイプを選択できます。このように企業のデータセンターで運用する場合と、違った考え方が必要です。
次からAWSのようなクラウドでスケールアップする場合の考え方について紹介します。
AMIならサーバーの入れ替えが容易
AWSではインスタンス起動に使われるAmazonマシンイメージ(AMI)により、サーバーの入れ替えを容易に実現できます。
なおAmazonマシンイメージ(AMI)は仮想化技術を使った仕組みで、インスタンスの起動に必要な情報が格納されたファイルのようなものです。そのためCPUのアーキテクチャが同じであれば移動や複製も可能です。
さらに今実行中のインスタンスもAmazonマシンイメージ(AMI)として管理されているので、インスタンスを停止した状態であれば、移動や複製、およびインスタンスタイプの変更が可能です。
インスタンスタイプの種類
Amazon EC2にはCPUアーキテクチャ、CPUのコア数、メモリー容量、GPUコア数、ネットワークの拡張などの組み合わせにより、多くのインスタンスタイプが用意されています。そして新規にインスタンスを作る場合、その多くのタイプの中から選ぶことが可能です。
ただし、スケールアップのためにインスタンスタイプを変更する場合、CPUアーキテクチャによる制限を受けるため、選択肢はそれほど多くありません。
それでもCPUコア数、メモリー容量、拡張ネットワークの有無から複数のインスタンスタイプから選択できます。性能と費用を検討して最適なインスタンスタイプを選んでください。
CPUアーキテクチャを変更するには
もしスケールアップでCPUアーキテクチャも変更したい場合は、そのCPUアーキテクチャに合わせたAmazonマシンイメージ(AMI)を選択しなければなりません。
もし今使っているインスタンスをスケールアップする際、同時にCPUアーキテクチャも変更することになったら、残念ながら既存のインスタンスのAmazonマシンイメージ(AMI)は利用できません。
変更後のCPUアーキテクチャに該当するインスタンスタイプを選択して新規にインスタンスを作成し、それに今使っているのと同じアプリケーション等を設定してください。
AWSでのスケールアップ手順
AWSのインスタンスをスケールアップ手順は、AWSの管理コンソールでインスタンスタイプを変更するだけです。もしAWSで運用しているインスタンスの負荷が高くWebサービスにも影響が出るようになったら、ぜひインスタンスタイプの変更を検討してください。
次からインスタンスタイプの変更手順について紹介します。
インスタンスタイプを変更する手順
インスタンスタイプを変更する手順は、AWSの管理コンソールで変更対象のインスタンスを停止し、停止したらインスタンスタイプを変更して、変更後のインスタンスを起動するだけです。
具体的には、まずAWSの管理コンソールにログインし、Amazon EC2の管理画面に移動します。そして変更したいインスタンスを選択し、メニューの中から「インスタンスの停止」を選び、選択したインスタンスを停止してください。
続いて同じメニューの「インスタンスタイプの変更」を選択し、表示されたポップアップから変更したいインスタンスタイプを選択します。なおここにはCPUアークテクチャが同じインスタンスしか表示されません。
そして同じメニューの「インスタンスの開始」で変更したインスタンスを実行します。
インスタンスタイプを変更する際の注意点
インスタンスタイプを変更した際、変更できなかったりアプリケーションが動作しないケースがあるので注意してください。
まずインスタンスタイプを変更できるのは、ルートデバイスがEBSボリュームの場合に限られます。まずはルートデバイスがどこにあるかをチェックしてください。
またインスタンスタイプを変更する際、管理コンソールで選択できるインスタンスタイプとしてOSの互換性があるタイプのみ表示されます。しかし、アプリケーションによっては動作しないケースもあります。その場合はアプリケーションの設定を見直すなど移行作業が必要です。
Amazon EC2 Auto Scalingの検討も
スケールアップによって処理能力を高めたとしても、負荷の増加に対応できないことがあります。AWSでは、これまで紹介したスケールアップの方法の他に、インスタンスの数を増やすスケールアウトをサポートするサービスも提供しています。
AWSのAmazon EC2 Auto Scalingを利用することで、負荷の増加に合わせて自動的にインスタンスを起動し、負荷を分散することが可能です。インスタンスの変更によるスケールアップに合わせて検討してください。
AWSのスケールアップは簡単
今回紹介したように、AWSでスケールアップするにはインスタンスを停止してインスタンスタイプを変更して起動するだけで簡単です。これでCPUコアやメモリー容量、ネットワークを増強したインスタンスに切り替えることでスケールアップを実現できます。
なおスケールアップしたら終わりではありません。負荷状況をモニターし、必要ならスケールアウトによるインスタンスの増設なども検討してください。