みなさん、こんにちは。新人のRenです。今日はAmazon EC2についてお伝えさせていただきます。

EC2とは

Amazon EC2とは、Amazonが提供している仮想サーバーであり、LinuxやWindowsなどの仮想サーバーを作成できるサービスです。これらのサーバーは自動的に立ち上げからインストールまでを行ってくれるので、自分でインストールする必要はありません。

EC2インスタンスとは

EC2インスタンスとは、EC2で構築したサーバーの単位のことです。インスタンスは複数作成して実行することも可能です。複数のインスタンスを立ち上げることで柔軟でスケールしたインフラ構築が可能となります。EC2インスタンスは、AWSマネジメントコンソールまたはAPIを使用してコマンドやプログラム経由で作成することが出来ます。

EC2のメリット

EC2を利用するメリットは下記の通りです。

(1)構築時間が短縮できる
EC2上でインスタンスを立ち上げる時間は数分あれば十分です。一方でサーバーを購入する場合は、購入してから受け取って利用できるまでに時間がかかります。

(2)冗長化が簡単にできる
ネットワークを仮想ネットワークとして構築するサービスが提供されており、インスタンスと組み合わせることによって、簡単かつ短時間でサーバーの冗長化が可能です。ローカルの場合はサーバーの設定だけではなく、ネットワークの設計も必要になります。

(3)柔軟にスペックの変更が出来る
データベースサーバーを長年運用しているとデータは増え続けていくので、データの保持には増設が必須となります。EC2では、画面上でハードディスクやメモリの増設を簡単に行うことが出来ます。

インスタンスの設定

EC2でマネジメントコンソールから作成する場合、下記の項目を指定してサーバーを作成&起動します。

・インスタンスタイプ
・Amazonマシンイメージ(AMI)
・ネットワーク(VPCとサブネット)
・ストレージタイプ、容量
・セキュリティグループ(仮想ファイアウォール)

インスタンスタイプ

インスタンスタイプを指定することでサーバーのスペックが決まります。インスタイプタイプは、インスタンスファミリー・インスタンス世代・追加機能・インスタンスサイズの4つの要素で構成されています。

(1) インスタンスファミリー
特徴によってファミリーがあります。主要なものとして下記のようなものがあります。

・M…一般用途向け
バランスの取れたコンピューティング、メモリ、ネットワークのリソースを提供します。インスタンスのリソースを同じような割合で使う場合に適しています。
・C…コンピューティング最適化
高パフォーマンスプロセッサの恩恵を受けるコンピューティングバウンドなアプリケーション向けです。バッチ処理ワークロード、メディアトランスコード、高性能ウェブサーバー、ハイパフォーマンスウェブサーバー、ハイパフォーマンスコンピューティング (HPC)、科学モデリング、専用ゲームサーバーおよび広告サーバーエンジン、機械学習推論など
・R…メモリ最適化
メモリ内の大容量なデータを処理するワークロードに対して高速なパフォーマンスが出ます。
・P…高速コンピューティング
ハードウェアアクセラレーター (コプロセッサ) を使用して、浮動小数点計算、グラフィックス処理、データパターン照合などの機能を、CPU で実行中のソフトウェアよりも効率的に実行ができます。
・I…ストレージ最適化
ローカルストレージの大規模データセットに対する高いシーケンシャル読み取りおよび書き込みアクセスを必要とするワークロード用です。
・Hpc…HPC 最適化
ハイパフォーマンスコンピューティング (HPC) インスタンスは、AWS で HPC ワークロードを大規模に実行するために、最高の料金パフォーマンスを提供することを目的に構築されています。

(2)インスタンス世代
数が大きいほど新しい世代となっています。t2よりはt3の方が新しい世代です。
新しい方が基本的に高性能かつコスト効率も良いため、可能な限り最新世代のインスタンスを選択することが良いでしょう。

(3)追加機能
追加機能には下記のようなものがあります。また、追加機能が存在しないインスタンスタイプもあります。

・a…AMDのCPUを搭載
・n…ネットワーク強化
・d…インスタンスストア(内蔵ストレージ)を追加

(4)インスタンスサイズ
サイズが大きい方が高スペックとなりますが、料金も高額となります。EC2では、最初は小さいサイズを使いながら性能テストを行い、あとから必要なサイズに変更するといったスペックの変更を容易に行うことができます。運用開始後であっても、定期的に見直しをすると良いでしょう。

(5)現在利用可能なインスタンスタイプ
現在利用可能なインスタンスタイプは、下記の通りです。

・汎用…M5、M5a、M5ad、M5d、M5dn、M5n、M5zn、M6a、 M6g、M6gd、 M6i、M6id、T3、T3a、T4g
・コンピューティング最適化…C5、C5a、C5ad、C5d、C5n、C6a、 C6g、 C6gd、C6gn、 C6i、C6id 、Hpc6a
・メモリ最適化…R5、R5a、R5ad、R5b、R5d、R5dn、R5n、R6a、 R6g,R6gd、 R6i、R6id、u-3tb1.56xlarge、u-6tb1.56xlarge、u-6tb1.112xlarge、u-9tb1.112xlarge、u-12tb1.112xlarge、 X2gd、 X2idn、X2iedn、X2iezn、z1d
・ストレージ最適化…D3、D3en、I3en、I4i 、Im4gn 、Is4gen
・高速コンピューティング…DL1、 G4、G4ad、G5、G5g、 Inf1、 p3dn.24xlarge、P4 、VT1

ベアメタルインスタンス(GPUベースのもの)
・汎用…m5.metal、m5d.metal、m5dn.metal、m5n.metal、m5zn.metal、m6a.metal、m6g.metal、 m6gd.metal、 m6i.metal、m6id.metal
・コンピューティング最適化…c5.metal、 c5d.metal、c5n.metal、c6a.metal、 c6g.metal、 c6gd.metal、 c6i.metal、c6id.metal
・メモリ最適化…r5.metal、r5b.metal、r5d.metal、r5dn.metal、r5n.metal、r6a.metal、 r6g.metal、 r6gd.metal、 r6i.metal、r6id.metal、u-6tb1.metal、u-9tb1.metal、u-12tb1.metal、u-18tb1.metal、u-24tb1.metal、 x2gd.metal、 x2idn.metal、x2iedn.metal、x2iezn.metal、z1d.metal
・ストレージ最適化…i3.metal、i3en.metal、i4i.metal
・高速コンピューティング…g4dn.metal、g5g.metal

マシンイメージ(AMI)

使用できるOSとしては、下記のようなものがあります。

・Amazon Linux
・CentOS
・Red Hat Enterprise Linux
・Windows Server

AMIは誰でも公開できるものなので、インスタンス起動時にAMIを選択する際は信頼できる提供元のものを使うことが推奨されます。
※開発やテストとしての利用はまた違ってきますよね。

ネットワーク

VPCとはネットワーク上に作る仮想の専用スペースのことです。VPCの内部にサブネットを構築し、さらにその中にEC2やRDSなどのリソースを配置します。VPCという枠に入れることで作成したクラウドサービスをネットワーク経由で自社サーバーと接続したり、インターネット上で公開したりすることが可能となります。

セキュリティグループ(仮想ファイアウォール)

セキュリティグループは、VPCという仮想ネットワーク上に構築されるインスタンスに対して仮想ファイアウォールとしての機能をもたらします。そのため、基本的にはVPC内に構築されるインスタンスとセットで利用されます。必ず何かしらのセキュリティグループを適用する必要があります。

料金体系

EC2の料金体系は大きく3つに分かれます。

(1)オンデマンドインスタンス
インスタンスを立ち上げている時間分の従量課金です。

(2)リザーブドインスタンス、Savings Plans
長期利用を前提として、予約制のサービスです。リザーブドインスタンスとSavings Plansについての違いはこちら

(3)スポットインスタンス
AWS上に既に起動しているインスタンスを入札し、格安で利用する方式です。

その他EC2の関連サービス

EC2は様々なサービスと合わせて利用するとより効果的に利用できます。よく連携される主なサービスは下記になります。

(1)EBS
EC2インスタンスにアタッチして、データを保管しておくサービスです。

(2)ロードバランサー
ロードバランサとは、複数のサーバーに適切にアクセス負荷が分散されるようにする仕組みのことです。

(3)Auto Scaling
インスタンス数を自動的に増減させることが出来るサービスです。不要になったインスタンスは自動的に停止、終了される設定が可能なので、必要以上にインスタンスが増える心配はありません。

まとめ

EC2とはどのようなサービスなのかからよく連携されるサービスまで触れました。EC2はAWSの中でも非常によく使われるサービスであり、知識の量によって便利さが変化するものであると感じます。AWSの入門としてEC2から始めてみてはいかがでしょうか。