すでにメンバーの場合は

無料会員登録

GitHubアカウントで登録 Pikawakaが許可なくTwitterやFacebookに投稿することはありません。

登録がまだの方はこちらから

Pikawakaにログイン

GitHubアカウントでログイン Pikawakaが許可なくTwitterやFacebookに投稿することはありません。

IT用語

【IT用語】 AWSのEC2とは何?使い方や料金を押さえよう

ぴっかちゃん
ぴっかちゃん

EC2とはAWSが提供しているクラウドサービスです。仮想サーバーを借りることにより自分が作成したアプリを全世界に公開することができるようになります。

アプリケーションを作成してもそれを全世界の人に使ってもらうためにはアプリケーションを動かすためのサーバーを用意する必要があります。

クライアントとサーバー

サーバーは自分で用意することもできますが、設定や管理がすごい大変です。
そこで登場するのがレンタルサーバーです。

レンタルサーバーを用意しているサービスはいろいろありますが、その中で一番利用されているのがAmazonが提供しているAWSというサービスのひとつであるEC2です。
この記事ではEC2のサービスについて詳しく解説していきます。

AWSとは?

AWSとは「Amazon Web Services」の略称で、通販で有名なAmazonが提供しているクラウドコンピューティングサービスです。
クラウドコンピューティングは略して「クラウド」とも呼ばれます。

aws

クラウドサービスを使うと自分のパソコンに何も用意しなくても、インターネット上のサーバーで提供されている機能を使うことができます。
AWSではこの記事で紹介するEC2の他にもS3Cloud9など100を超える様々なサービスが用意されています。

AWSのサービスを利用するには、最初に「AWSのアカウント作成」を行います!

ぴかわかさん

EC2とは?

EC2とは「Elastic Compute Cloud」の略でAWSで提供されているサービスの中のひとつです。
EC2を使うとAWSが用意している仮想サーバーを使ってサーバー環境を構築することができるようになります。

ec2

自分でサーバーを用意するにはまずサーバーを動かすパソコンが必要になったり、ネットワークとの接続設定をしたりと色々と面倒なことがあります。
ですがEC2を使うとそういったことが不要になるため、今では多くの企業がAWSなどのクラウドサービスを利用しています。

EC2のメリット

それでは実際にEC2を使うとどのようなメリットがあるのかを解説していきます。

初期費用が不要

自分で物理サーバーを運用するとなると必要となるハードウェアを購入したりとかなり初期費用がかかってしまいます。
EC2では仮想サーバーを作成するだけであれば料金は発生しません。
ですので初期費用を抑えることができます。

従量課金制

アプリを立ち上げた直後などサービスが軌道に乗らない時、従来の月額課金制だと一定の料金が発生してしまいます。
ですがEC2では使った分だけ料金が発生するので、アクセスが少ない時期にコストを抑えられたり、不要なサーバーを停止することでコストをカットしたりすることができます。

構築がスピーディー

自分で物理的なサーバーを用意する際だと準備などで数日から数週間かかってしまいますが、EC2を使えば数分でサーバーを構築することができます。
すぐにサーバーを用意する必要がある時などは大変便利です。

サーバーのスペック変更が簡単

立ち上げたサービスが順調に伸びて、サーバーのスペックアップやディスクの容量をアップしたい際、物理サーバーだと部品の交換など、構築時と同じような手間が発生します。
ですがEC2では設定で簡単にスペックを変更することができます。

簡単な冗長化

サービスを運営していると何らかの障害が発生した際、サービスが止まってしまうことがあります。
それを防ぐために同じ構成のサーバーを予備として運用しておく必要があります。
このことを冗長化と言います。

EC2ではこの冗長化も簡単に行うことができます。
これによりアクセスが集中した際に負荷の分散を行ったり、万が一障害が発生してもサービスを運営することができます。

EC2のデメリット

このようにEC2には様々なメリットがありますが、デメリットもあります。

環境が用意されていない

サーバーを構築したら、作成したアプリを動かすための環境構築をする必要があります。
例えばRailsで作成したアプリを仮想サーバーで動かすにはrubyやRailsをインストールしたり、データベースなども用意しなければなりません。

それには知識が必要になってくるので、初心者だとかなりハードルが高くなってしまいます。
そういう方はPaaSの代表的なサービスのherokuなどを使うことをお勧めします。

料金が変動する

従量課金制の場合、アクセスが殺到すると思いもよらない料金が発生する可能性があります。
また月額課金制であれば月々にかかる費用を計算することができますが、EC2だとアクセス数によって価格が変動するため、料金を予期することができません。
従量課金以外で支払う場合は1年か3年で契約をする必要があります。

機能が多すぎる

AWSにはEC2の他にもたくさんのサービスが用意されています。
自分のアプリを運営する上ではEC2以外のサービスが必要になる場合があり、何を選んだらいいのかわからなくなってしまう場合があります。

用語解説

この章ではEC2でよく使われる用語について解説していきます。

インスタンス

EC2の仮想サーバーのことをEC2インスタンスと呼びます。
サービスを運営するにはまずインスタンスを作成することから始まります。
このインスタンスが稼働している時間で発生する料金が決まります。

インスタンスは一つだけでなく複数作成することもできます。

インスタンスタイプ

自分で物理サーバーを構築する際にはパソコンを用意する必要があります。
そのパソコンのスペックに当たるのがインスタンスタイプです。
インスタンスタイプごとにCPUメモリ、ストレージ機能が異なります。

インスタンスタイプ

インスタンスタイプの名前は下記のように付けられます。

インスタンスタイプ

それぞれの意味を確認していきましょう。

インスタンスファミリー

インスタンスファミリーとはどのような用途に使われるのかを表しています。
ファミリーには下記のような特徴があります。

ファミリー タイプ 適しているサービスの例
Mac 汎用 Xcode IDEでのアプリケーション開発
A 汎用 Webサーバー、開発環境、マイクロサービス
T 汎用 Webサイト、開発環境、マイクロサービス
M 汎用 小中規模のサービス
C コンピューティング最適化 動画エンコーディング、ゲーム
R メモリ最適化 ハイパフォーマンスなサービス
X メモリ最適化 メモリを大量に使用するワークロード
Z メモリ最適化 リレーショナルデータベースワークロード
D ストレージ最適化 Hadoop、GPFC、BeeFS、HPC
I ストレージ最適化 RDB、NoSQLデータベース
H ストレージ最適化 分散ファイルシステム、大量のデータ処理
F 高速コンピューティング ゲノム研究、財務分析、リアルタイムビデオ処理
G 高速コンピューティング 自動音声認識、翻訳などの機械学習
P 高速コンピューティング HPC、自律走行車などの機械学習
Inf 高速コンピューティング 画像および動画分析、翻訳などの機械学習

※参照:AWS公式「Amazon EC2 インスタンスタイプ」

次に各タイプがどのような特徴を持っているか解説していきます。

汎用

CPU、メモリ、ネットワークリソースのバランスが取れたインスタンスです。
ウェブサーバーなど、インスタンスのリソースを同じ割合で使用するアプリケーションに最適です。

Tファミリーはサーバーの負荷が少ない時にCPUクレジットを貯めておき、サーバーに負荷がかかった時に貯めておいたCPUクレジットを使うことで一時的にCPU性能を高めることができるバースト可能なタイプです。
そのため常時負荷がかかっているサーバーには向いていません。
t2.microは無料利用枠の対象となっているので、開発環境などでよく使われます。

Mファミリーはよりバランスが取れたインスタンスです。
Tファミリーは長時間高いCPU使用率が続くと追加料金が発生してしまいますが、Mファミリーは発生しません。
小中規模の一般的なサービスであればこちらを選んでおくのが良いでしょう。

コンピューティング最適化

汎用タイプよりCPUの性能が高いインスタンスです。
常時CPUに負荷がかかるサーバーに適しています。

メモリ最適化

汎用タイプより搭載されるメモリが高いインスタンスです。
高スペックなメモリが要求されるサーバーに適しています。

ストレージ最適化

汎用タイプより大容量のデータを扱うことができるインスタンスです。
高いシーケンシャル読み取りや書き込みアクセスを必要とするサーバーに適しています。

高速コンピューティング

浮動小数点計算、グラフィックス処理、データパターン照合などの機能を、CPUで実行中のソフトウェアよりも効率的に実行します。
画像分析や翻訳などの機械学習に適しています。

インスタンス世代

インスタンス世代は数字が大きいほど新しい世代を表します。
最新の世代の方が性能も高く料金も安い傾向があるので、なるべくであれば最新の世代を使うのが良いでしょう。

例としてT2.nanoとT3.nano、T4g.nanoの比較をしてみます。

世代 vCPU メモリ ネットワークパフォーマンス 料金/時
T2 1 0.5GiB 低〜中 0.0076 USD
T3 2 0.5GiB 最大5Gbpsまでアップ 0.0068 USD
T4g 2 0.5GiB 最大5Gbpsまでアップ 0.0054 USD

このように性能がアップ、または変わらなくても料金が安くなっているのがわかります。

追加機能

追加機能には下記のようなものがあります。

名前 内容
a AMDのCPUを使用
b EBSパフォーマンスの向上
d ローカルSSDストレージの追加
e 標準と異なったCPUやメモリが搭載
g AWS Graviton2 のCPUを使用
n ネットワークの強化
z 高いオールコアターボ周波数

インスタンスサイズ

CPU、メモリ、ネットワーク帯域などのサイズを表します。
サイズが大きいほどスペックと料金が上がっていきます。

下の表ではサイズが小さい順に並べました。
2xlarge以降は性能が高いほど数字が上がっていきます。
T2での性能を比較してみましょう。

サイズ vCPU メモリ ネットワークパフォーマンス 料金/時
nano 1 0.5GiB 0.0076 USD
micro 1 1GiB 低〜中 0.0152 USD
small 1 2GiB 低〜中 0.0304 USD
medium 2 4GiB 低〜中 0.0608 USD
large 2 8GiB 低〜中 0.1216 USD
xlarge 4 16GiB 0.2432 USD
2xlarge 8 32GiB 0.4864 USD

運営するサービスの規模で使い分けるのが良いでしょう。

AMI

AMIとは「Amazon Machine Image」の略で、OSやアプリケーションサーバーなどのインスタンスを起動するために必要な情報が記録されています。
AMIは、AWSが提供するもの、ユーザーコミュニティが提供するもの、またはAWS Marketplaceに掲載されているものを選択できます。

誰でも公開できるものなので、中には脆弱なものもあります。
できればAWSが提供しているものや各OSのものを選ぶと良いでしょう。

一つのAMIで複数のインスタンスを起動することができます。
また別のリージョンに複製することもできます。

AMI

※参照:AWS公式「Amazon マシンイメージ (AMI)」

選択できるOS

AMIでは事前にインストールされているOSを使うことができるので、自分でインストールする必要がありません。
選択できるOSはAWSが提供しているAmazon Linux 2Microsoft WindowsUbuntu ServerRed Hat Enterprise LinuxDeep Learning AMIDebianなどがあります。

ami

EBS

EBSとは「Elastic Block Store」の略でEC2で使用するストレージサービスです。
EC2に外付けするHDDのようなイメージです。
リレーショナルデータベースや非リレーショナルデータベースなど多様なワークロードが用意されています。

用意されているボリュームによってパフォーマンスと料金が異なります。
ボリュームタイプはソリッドステートドライブ (SSD)ハードディスクドライブ (HDD)の2つのカテゴリに分けられます。
その中でも4つのカテゴリに分類されます。

カテゴリ タイプ 用途
汎用SSD gp2、gp3 開発・テスト環境
プロビジョンド IOPS SSD io1、io2、io2 Block Express 高パフォーマンスが必要な環境
スループット最適化 HDD st1 コストを抑えたいアクセス頻度の高い環境
Cold HDD sc1 コストを抑えたいアクセス頻度の低い環境

※参照:AWS公式「Amazon EBS ボリュームの種類」

それぞれの特徴を解説します。

汎用SSD

料金とパフォーマンスのバランスに優れています。
タイプには2種類あります。
ボリュームタイプが指定されていない場合のデフォルトのボリュームタイプはgp2になります。

タイプ サイズ 最大IOPS 最大スループット
gp2 1GiB 〜 16TiB 16,000 250MB/秒
gp3 1GiB 〜 16TiB 16,000 1,000MB/秒

プロビジョンド IOPS SSD

最高レベルのパフォーマンスを提供します。
タイプには3種類あります。

タイプ サイズ 最大IOPS 最大スループット
io1 4GiB 〜 16TiB 64,000 1,000MB/秒
io2 4GiB 〜 16TiB 64,000 1,000MB/秒
io2 Block Express 4GiB 〜 64TiB 256,000 4,000MB/秒

Cold HDD

アクセス頻度の低いワークロード向けの低コストのHDDです。

タイプ サイズ 最大IOPS 最大スループット
sc1 125GiB 〜 16TiB 250 250MB/秒

スループット最適化 HDD

アクセス頻度の高いワークロード向けの低コストのHDDです。

タイプ サイズ 最大IOPS 最大スループット
st1 125GiB 〜 16TiB 500 500MB/秒

▼ AWSの用語ついて不安がある方は、図解を使って丁寧に解説している以下の参考書を利用すると良いでしょう。クラウドやネットワークの基礎から学べます!

aws参考書
図解即戦力 Amazon Web Servicesのしくみと技術がこれ1冊でしっかりわかる教科書

IT業界などへの転職・就職を目指す人、駆け出しエンジニアがAWS関連の用語、しくみ、クラウドとネットワークの基礎技術などを一通り学べます。

料金について

AWSでは無料利用枠が設けられています。
無料利用枠には常に無料なものと最初にサインアップした日から1年間無料なもの、短期の無料トライアルがあります。

EC2とEBSは1年間無料が適用されます。

EC2ではt2.microインスタンスを毎月750時間分無料で利用することができます
EBSでは毎月ストレージ 30GB、I/O 200万回、1 GBのスナップショットストレージを利用することができます。
それを超えるか、無料利用枠が使えなくなると料金が発生いたします。

※参照:AWS公式「AWS 無料利用枠」

EBS料金表

EBSは1月に使われた分の従量課金制です。
※リージョンは東京です

タイプ ストレージ(1GB) IOPS(1回) スループット(MB/秒)
gp2 0.12 USD - -
gp3 0.096 USD 0.006 USD
(3,000を超えた分)
0.048 USD
(125 MB/秒を超えた分)
io1 0.142 USD 0.074USD -
io2 0.142 USD 0.074 USD(〜32,000)
0.052 USD(32,001~64,000)
0.036 USD(64,000を超えた分)
-
st1 0.054 USD - -
sc1 0.018 USD - -

※参照:AWS公式「Amazon EBS の価格」

EC2の料金

EC2の料金形態には大きく分けて3種類あります。

オンデマンドインスタンス

インスタンスが稼働している時間あたり、または秒あたりの料金が発生するプランです。
使用したくない時はインスタンスを停止させれば料金は発生しません。
短期的にサービスを運営したい場合や開発環境でよく利用されます。

オンデマンドインスタンス

※参照:AWS公式「Amazon EC2 オンデマンド料金」

リザーブドインスタンス

料金を1年、または3年単位で支払いすることができるプランです。
その分オンデマンドインスタンスに比べて料金が最大72%の割引となります。
ただしインスタンスを停止していても料金は発生します。

支払いオプションとして前払いなし一部前払い全額前払いが選べます。
全額前払いが一番安くなります。

リザーブドインスタンス

m5.largeの東京リージョンでのシミュレーションです

支払い方法 料金/時 割引率
オンデマンド 0.124 USD -
1年(前払いなし) 0.078 USD 37%
1年(一部前払い) 0.074 USD 40%
1年(全額前払い) 0.073 USD 41%
3年(前払いなし) 0.054 USD 56%
3年(一部前払い) 0.050 USD 60%
3年(全額前払い) 0.047 USD 62%

※参照:AWS公式「Amazon EC2 リザーブドインスタンスの料金」

途中でキャンセルやインスタンスファミリーの変更ができないので契約をする前には十分に検討をする必要があります。

またリザーブドインスタンスにはSavings Plansという支払い方法も追加されました。
Savings PlansにはCompute Savings PlansEC2 Instance Savings PlansAmazon SageMaker Savings Plansの3種類があります。

※参照:AWS公式「Amazon EC2 Savings Plans」

Compute Savings Plans

最も優れた柔軟性があるプランです。
Compute Savings Plansであればインスタンスファミリーやリージョン、OSなどの変更が可能です。
オンデマンドタイプと比較して最大66%の節約ができます。

EC2 Instance Savings Plans

EC2 Instance Savings PlansであればOSの変更が可能です。
インスタンスファミリーやリージョンの変更はできませんが、その分オンデマンドタイプと比較して最大72%の節約ができます。

Amazon SageMaker Savings Plans

機械学習サービスを開発、デプロイする際に便利なAmazon SageMakerサービスの使用量に適用されます。
Amazon SageMakerサービスの使用コストを最大64%節約できます。

スポットインスタンス

自分のインスタンスではなく、AWS上で使用されていない他人のインスタンスを利用するプランです。
オンデマンドインスタンスに比べて料金が最大90%の割引となります。
一番安く運営できるプランとなります。
スポット料金は使われていないインスタンスが少なくなると上がり、多くなると下がるというように時系列で価格が自動で変動します。

※参照:AWS公式「Amazon EC2 スポットインスタンス」

基本、いくらまで払えるかという1時間あたりの上限料金を設定して利用します。
スポット料金が上限料金を超えたときはインスタンスを利用できません。
サービスを一時停止させたくない場合は上限料金は指定しない方が良いでしょう。
上限料金を指定しない場合、デフォルトの上限料金はオンデマンド価格となります。

スポットインスタンス
※参照:AWS公式「Amazon EC2 スポットインスタンスの料金」

料金の比較

では実際どれくらい価格が変わるかを t2.micro(東京リージョン)を例に表にしてみます。
スポット料金は変動するのでAWSが公開している平均値で算出しています。

割力率の比較
タイプ 料金/時 割引率
オンデマンド 0.0152 USD -
リザーブド(1年全額前払い) 0.0100 USD 37%
リザーブド(3年全額前払い) 0.0070 USD 57%
スポット 0.0046 USD 70%

このようにスポットインスタンスが一番安く利用できます。

1月稼働し続けた場合のシミュレーションはこのようになります。
※日本円は1USD = 110円で計算

t2.microのシミュレーション
タイプ 月額(USD) 月額(日本円)
オンデマンド 11.3088 USD 1,243円
リザーブド(1年全額前払い) 7.4400 USD 818円
リザーブド(3年全額前払い) 5.208 USD 573円
スポット 3.4224 USD 376円
m5.largeのシミュレーション
タイプ 月額(USD) 月額(日本円)
オンデマンド 92.256USD 10,148円
リザーブド(1年全額前払い) 57.75 USD 5857円
リザーブド(3年全額前払い) 34.028 USD 3743円
スポット 25.966 USD 2856円

自分の運営するアプリに最適なプランを選びましょう。

まとめ

このようにEC2では導入から実際に運営するまでかなりスピーディーに行え、選択肢もたくさんあります。
アプリのデプロイを考えている方はぜひ導入を検討してみてください。

この記事のまとめ

  • EC2とはAmazonが用意している仮想サーバー
  • 運営したいサービスによって自由にスペックを変えられる
  • 料金体系も自分で選択することができる