AWS EC2の基礎を詳しく解説!
AWSは非常に多くのサービスから構成されていて、その中にEC2と呼ばれるものがあります。いわゆる仮想サーバをサービスとして提供するものであり、AWSが提供するサービスの中でも重要なものです。AWSのユーザならば、多くの人がEC2を利用するでしょう。
非常に重要なサービスであり、これを知らずしてAWSを使いこなすことはできません。今回は、これからAWSを利用したい人へ向けて、EC2とはどのようなサービスであるのか。基本的な知識を解説します。
EC2はどのようなサービスか
最初に、AWS EC2がどのようなサービスであるのか、基本的な部分を理解していきましょう。
AWS EC2の概要
Amazon EC2 (Elastic Compute Cloud) は、Amazon Web Services (AWS) が提供するクラウドベースの仮想サーバサービスです。EC2を利用することで、ユーザは必要な時に仮想マシン(インスタンス)を簡単に立ち上げられます。スケールアウトやスケールインがスムーズに可能であり、柔軟にリソースを確保できることが特徴です。
一般的な仮想サーバの構築とは違い、物理サーバを構築・運用する必要はありません。そのため、スムーズかつコストを抑えてコンピューティングリソースを確保できるのです。
EC2インスタンスとは
AWSでEC2サーバーを構築する場合、ひとつのサーバーを「インスタンス」という単位で表現します。厳密な定義を述べると少々異なりますが、OSを起動した仮想サーバー1台がインスタンスであると理解してよいでしょう。
いくつもの仮想サーバーが必要となる場合は、インスタンスを何台も起動することによって、これを実現します。例えば、Webアプリケーションを開発する場合は、アプリケーションサーバー1台とデータベースサーバー1台の合計で2台をインスタンスとして起動するのです。
IT業界では、インスタンスというキーワードが多用されます。AWSの世界でも意味合いが異なる場合があるため、状況に応じて適切な内容で理解できるようになりましょう。
EC2のインスタンスタイプ
EC2には、インスタンスタイプと呼ばれるものがあり、簡単に述べるとサーバーのスペックのことを指します。実装の場では、状況に応じてさまざまなスペックを選択する必要があるため、それらに応えられるように準備されています。インスタンスタイプはインスタンスファミリー・インスタンス世代・追加機能・インスタンスサイズが分かるように設定されていて、それぞれ以下のとおりです。
インスタンスファミリー
インスタンスファミリーは、用途に合わせて設けられたインスタンスのグループです。汎用的なもの、メモリが多いもの、ストレージのレイテンシーが低いものなどがあります。
ファミリー | 特徴 | 概要 |
M/T | 一般用途向け | 汎用インスタンスで、バランスの取れたコンピューティング、メモリ、ネットワークのリソースを利用できる。 |
C | コンピューティング最適化 | 高パフォーマンスプロセッサの恩恵を受けるコンピューティングバウンドなアプリケーション向け。ハイパフォーマンスなシステムや機械学習など大量のデータを扱う際に適している。 |
P/G/Trn/Infなど | 高速コンピューティング | ハードウェアアクセラレーター (コプロセッサ) を使用して、浮動小数点計算、グラフィックス処理、データパターン照合などを、CPU単体のソフトウェアよりも効率的に処理。 |
R | メモリ最適化 | メモリ内の大きいデータセットを処理するワークロードに対して高速なパフォーマンスを提供。最新の高速メモリが利用できることが魅力。 |
I | ストレージ最適化 | ローカルストレージの大規模データセットに対する高いシーケンシャル読み取りができる仕様。I/O レイテンシーを最大 60% 低減し、パフォーマンスの向上を実現。 |
Hpc | HPC最適化 | ハイパフォーマンスコンピューティング (HPC) を実現するための専用設計。大規模で複雑なシミュレーションや深層学習のワークロードなどに利用可能。 |
インスタンス世代
同じインスタンスでも、マイナーバージョンアップが繰り返されています。その中でインスタンス世代も更新され、数字が大きいほど新しい世代であることを示しています。基本的に、数字が大きく新しいインスタンス世代を選択するようにしましょう。
追加機能
一部のインスタンスには、追加機能が搭載されていて、それがインスタンスタイプとして定められています。例えば以下のとおりです。
- a:AMD CPUに対応
- b:EBSパフォーマンスの向上
- d:内蔵ストレージの付加
- g:AWS Gravitonプロセッサを搭載
これら以外にも追加機能はあるため、利用の際に気になる追加機能があれば、詳細を確認してみてください。
AWSでEC2を利用するメリット
続いては、EC2を採用することで、どのようなメリットがあるのか解説していきます。
スムーズにサーバー構築できる
EC2を利用して仮想サーバーを構築することで、サーバー構築に必要な期間を短縮できます。基本的にEC2は簡単な操作だけで初期設定が完了するため、構築作業としては5分から10分程度です。その後、AWSがインスタンスを起動するまで待機時間が発生しますが、それを含めても15分程度で完了します。
もし、自分で仮想サーバーを構築するならば、このように短時間かつスムーズな作業は不可能です。例えば、仮想サーバーを構築するためのソフトウェアをインストールすることから始めなければなりません。また、ソフトウェアがインストールされていても、仮想サーバーの構築に向けていくつもの作業が必要です。仮想サーバーを構築する手間を軽減できることが非常に大きなメリットだと考えましょう。
柔軟にスペックを変更できる
EC2にはインスタンスタイプが存在し、構築してからでもある程度は自由に変更できます。例えば、サーバを構築してアプリケーションを起動したところ「動作が重く、利便性が悪い」ということがあるでしょう。このような状況で、インスタンスタイプをよりリソースが多いものへ変更するなどの対策が可能です。
オンプレミスのサーバーや自前で仮想サーバーを構築している場合は、このようなリソースの変更が難しくなってしまいます。例えば、物理サーバーを利用している場合ならば、簡単にCPUやメモリを変更できません。仮想サーバーを自前で構築していても、物理サーバーのリソースに限界があると割り当てができないのです。しかし、EC2を利用すれば、そのようなリスクを考慮する必要がありません。
コストを制御しやすい
EC2の料金体系は複数あり、基本的には起動した時間に応じた従量課金制です。そのため、利用したいときだけインスタンスを起動する運用とすることで、料金を制御しやすいことがメリットです。例えば、企業内利用で営業時間内のみ運用するならば、深夜はインスタンスを停止することによってコストを抑制できます。利用時間に応じて課金される点は、AWSをはじめとしたクラウドサービスならではのメリットだと考えましょう。
自分たちでインフラを保有する場合は、このような従量課金制という考えが発生しません。例えば、仮想サーバーを構築するための物理サーバーを購入すると、その時点でまとまった金額が発生してしまいます。その後、サーバーをどれだけ利用しても支払う額には変化がないのです。
AWS EC2の料金プラン
EC2を利用する際は、料金プランを意識しなければなりません。3種類存在するため、それぞれについて紹介します。
オンデマンドインスタンス
オンデマンドインスタンスは、AWSが提供する標準的な料金プランです。インスタンスを起動している間だけ料金が発生するもので、いわゆる従量課金制に該当します。利用しない際はインスタンスを停止することで料金の発生を抑えられるため、コストをコントロールしやすいことが特徴です。テスト環境など一時的にしか利用しない場合には、オンデマンドインスタンスを選択すると良いでしょう。ただ、1時間あたりの課金額は、以下で解説する2種類の料金プランより高く設定されています。そのため、24時間稼働する場合や、中長期的にサーバーを起動する場合は、他の料金プランとどちらが良いか検討しなければなりません。
リザーブドインスタンス
リザーブドインスタンスは、インスタンスを中長期的に契約することで、1時間あたりの料金を実質割安にする制度です。先払いである点に注意は必要ですが、24時間インスタンスを起動し続けるならば、オンデマンドインスタンスよりも安く抑えられます。
加えて、AWSには「Savings Plans」と呼ばれる料金プランも準備されています。これは継続的にAWSを利用する場合におすすめのプランで、EC2やLambdaなどのコストを抑えられるものです。1年あるいは3年単位で契約するという制限がありますが、あらかじめ長期的な利用が決まっているならば、こちらも検討してみましょう。
スポットインスタンス
スポットインスタンスは、EC2に割り当てられているものの、あまり利用されていないリソースを使用させてもらう契約です。余っているリソースにEC2インスタンスを起動するため、非常に安い料金で利用できます。
ただ、スポットインスタンスはリソースが余っている場合にのみオークション形式で落札する仕組みです。そのため、リソースが余っていない場合や入札額が他のユーザーよりも少ない場合には、インスタンスが停止することになりかねません。急にインスタンスが停止する可能性があり、ハイリスクハイリターンな料金プランといえるでしょう。
EC2を利用する際の注意点
これからEC2を用いた仮想サーバーを構築する際、意識したい注意点を解説します。
変則的なスペックを実現しづらい
サーバーに対して変則的なスペックを実現しづらい点には注意しておきましょう。例えばCPU2コアに対してメモリを32GB実装するようなスペックです。大量にメモリを搭載したインスタンスタイプも用意されていますが、この事例は実現できません。ユーザは、インスタンスタイプとして提供されている範疇でしか選択できないのです。
もし、特殊なスペックを必要とするならば、オートスケーリングやリザーブドインスタンスを細かく活用する必要があります。ただ、これについては事前の設定が必要となったり料金が高くなったりするため注意して選択しなければなりません。
AWSの都合に左右されかねない
EC2は基本的に安定して提供されているサービスです。ただ、クラウドサービスである以上は、EC2の都合に左右されかねません。何かしらの理由で、サービスが提供されない場合があるため注意しましょう。
例えば、AWSの利用規約によると、極端にリソースが不足した際はインスタンスの起動を制限すると記載されています。具体的な状況は述べられていないものの、地震などで物理的に機能しているサーバーが減少するとサービスが制限されるなどが予想されるのです。基本的には問題ないと考えて差し支えありませんが、念のために意識しておきましょう。
まとめ
AWSの主要なサービスであるEC2について解説しました。簡単に導入できる仮想サーバーのサービスであり、必ず押さえておきたいものです。一般的なサーバーと同様に多様な使い方が考えられるため、まずは実際に使ってみるのも良いでしょう。
魅力的なサービスではありますが、インスタンスタイプに制限があるなど若干の制約はあります。自前で仮想サーバーを構築するほどの柔軟性はないため、その点は意識しなければなりません。クラウドならではのメリットとデメリットを理解することで、より使いこなせるようになるでしょう。