Amazon Elastic Compute Cloud ( EC2 ) は、 Amazonのクラウド コンピューティングプラットフォームであるAmazon Web Services (AWS)の一部であり、ユーザーが独自のコンピュータ アプリケーションを実行するための仮想コンピュータをレンタルできます。EC2 は、ユーザーがAmazon Machine Image (AMI)を起動して、Amazon が「インスタンス」と呼ぶ、任意のソフトウェアを含む仮想マシンを構成できるWeb サービスを提供することにより、アプリケーションのスケーラブルな展開を促進します。ユーザーは、必要に応じてサーバーインスタンスを作成、起動、終了でき、アクティブなサーバーに対して秒単位で料金を支払います。これが「エラスティック」という用語の由来です。EC2 は、レイテンシの最適化と高いレベルの冗長性を可能にするインスタンスの地理的な場所をユーザーに制御できるようにします。[ 2 ] 2010 年 11 月、Amazon は自社の小売 Web サイト プラットフォームを EC2 と AWS に切り替えました。[ 3 ]
Amazon は 2006 年 8 月 25 日に EC2 の限定公開ベータ テストを発表し[ 4 ]、先着順でアクセスできるようにしました。Amazon は 2007 年 10 月 16 日に新しいインスタンス タイプ (Large と Extra-Large) を追加しました[ 5 ]。2008年 5 月 29 日に、High-CPU Medium と High-CPU Extra Large の 2 つのタイプが追加されました[ 6 ] 。利用可能なインスタンス タイプは 12 種類になりました[ 7 ] 。
Amazonは2008年3月27日に3つの新機能を追加しました。[ 8 ]静的IPアドレス、アベイラビリティゾーン、およびユーザーが選択可能なカーネルです。2008年8月20日には、AmazonはElastic Block Store(EBS)[ 9 ]を追加しました。これにより、サービス開始以来欠けていた永続ストレージ機能が提供されます。
Amazon EC2 は、2008 年 10 月 23 日にベータ版のラベルが外され、本格的な運用を開始しました。同日、Amazon は以下の機能を発表しました。[ 10 ]
これらの機能はその後、2009年5月18日に追加された。[ 11 ]
Amazon EC2 は、主に南アフリカのケープタウンにあるクリス・ピンカム率いるチームによって開発されました。 [ 12 ] [ 13 ]ピンカムは EC2 の初期アーキテクチャのガイダンスを提供し、その後チームを構築し、ウィレム・ファン・ビルヨンと共にプロジェクトの開発を主導しました。
当初、EC2 はXen仮想化のみを使用していました。[ 14 ]しかし、2017 年 11 月 6 日、Amazon はKVM ハイパーバイザーを中心としたカスタム アーキテクチャに基づく新しい C5 ファミリーのインスタンスを発表しました。 [ 15 ] Nitro と呼ばれています。[ 16 ] [ 17 ]「インスタンス」と呼ばれる各仮想マシンは、仮想プライベート サーバーとして機能します。Amazon はインスタンスのサイズを「Elastic Compute Units」に基づいて決定します。それ以外は同じ仮想マシンでもパフォーマンスが異なる場合があります。[ 18 ] 2017 年 11 月 28 日、AWS はベアメタル インスタンスを発表し、仮想化インスタンス タイプのみを提供するという方針から転換しました。[ 19 ]
2019年1月現在、以下のインスタンスタイプが提供されていました: [ 20 ]
2018年4月現在以下のような支払い方法が例として提供されました。[ 21 ]
2025年、AWSはEC2を拡張し、Graviton4を搭載し、最大600 Gbit/sのネットワーク帯域幅(C7gnより約30%高いコンピューティング性能)を提供する、コンピューティングに最適化されたC8gnファミリーを導入しました。また、顧客が適切なサイズのグラフィックス/MLワークロード用にNVIDIA L4 GPUの8分の1、4分の1、または2分の1をプロビジョニングできるG6fフラクショナルGPUインスタンスも導入しました。 [ 24 ] [ 25 ]
2018年4月現在 Amazon では、Linux または Windows を実行する最小の「Nano インスタンス」(t2.nano)仮想マシンに対して、1 時間あたり約 0.0058 ドル(1 か月あたり 4.176 ドル)の料金が課せられます。ストレージ最適化インスタンスは、1 時間あたり最大 4.992 ドル(i3.16xlarge)かかります。「予約済み」インスタンスは、3 年間のプリペイドプランで月額 2.50 ドルまで安くなります。[ a ] [ 26 ] [ 27 ]データ転送料金は、方向と月間ボリュームに応じて、無料から 1 ギガバイトあたり 0.12 ドルまでです(受信データ転送はすべての AWS サービスで無料です[ 28 ])。
EC2 のコストは、Amazon のコストと使用状況レポートを使用して分析できます。EC2 には、時間単位のインスタンス料金、データ転送、EBS ボリューム、EBS ボリューム スナップショット、NAT ゲートウェイなど、さまざまなコスト カテゴリがあります。[ 29 ]
2010年12月現在 Amazonは新規アカウント保有者向けに無料のリソースクレジットをバンドルで提供しました[ 30 ] 。このクレジットは、1年間「マイクロ」サイズのサーバー、ストレージ(EBS)、帯域幅を実行するように設計されています[ 31 ] 。未使用のクレジットは翌月に繰り越すことはできません[ 32 ]。
リザーブドインスタンスを使用すると、EC2 または RDS サービスのユーザーはインスタンスを 1 年または 3 年間予約できます。インスタンスの運用に対して Amazon が請求する対応する時間単価は、オンデマンドインスタンスの料金よりも 35 ~ 75% 低くなっています。[ 33 ] リザーブドインスタンスは、全額前払い、一部前払い、前払いなしの 3 つの異なる支払いオプションで購入できます。さまざまな購入オプションにより、支払いモデルの構造が異なり、予約を前払いする顧客にはより大きな割引が適用されます。[ 34 ]
リザーブドインスタンスは、リソースのコミットメントに基づいて購入されます。これらの予約は、インスタンスタイプとそのインスタンスタイプの数に基づいて行われます。たとえば、i3.largeインスタンスを100個、3年間予約することができます。
2016 年 9 月、AWS はリザーブド インスタンスのいくつかの機能強化を発表し、スコープと呼ばれる新機能とコンバーチブルと呼ばれる新しい予約タイプを導入しました。[ 35 ] 2017 年 10 月、AWS は、より柔軟性を高めるために購入したインスタンスを分割できるようになったことを発表しました。[ 36 ]
クラウド プロバイダーは、販売しなければ損失を被るリスクがある大量の余剰容量を保持しています。[ 37 ] Amazon EC2 スポット インスタンスは、AWS クラウドの余剰コンピューティング容量であり、オンデマンド価格と比較して最大 90% 割引で利用できます。[ 23 ]トレードオフとして、AWS はこれらのインスタンスに対してSLAを提供しておらず、顧客は Amazon が容量を回収する必要があるときに、わずか 2 分前に通知するだけで中断される可能性があるというリスクを負います。イスラエル工科大学の研究者は、「スポット インスタンスは通常、動的な隠れた予約価格を介して、狭い価格帯からランダムに生成される」ことを発見しました。[ 37 ] Spotinst のような一部の企業は、機械学習を使用してスポットの中断を最大 15 分前に予測しています。[ 38 ] [ 39 ]
2019 年 11 月に Amazon は Savings Plans を発表しました。[ 40 ] Savings Plans は、Reserved Instances [ 41 ]の代替となるもので、Compute Savings Plans と EC2 Instances Savings Plans の 2 種類のプランがあります。Compute Savings Plans では、組織は EC2 と Fargate の使用を約束し、約束の有効期間内にリージョン、ファミリー、サイズ、アベイラビリティ ゾーン、OS、テナンシーを自由に変更できます。EC2 Instance Savings Plans は Compute Savings Plans よりも割引率が高いですが、柔軟性が低く、ユーザーはリージョン内の個々のインスタンス ファミリーを約束する必要がありますが、そのリージョン内のファミリー内のインスタンスは自由に変更できます。[ 42 ]
AWS は、コスト エクスプローラーを使用して、お客様が行うべきコミットメントの推奨事項と、そのコミットメントが AWS 請求書の月額料金としてどのように表示されるかを自動的に計算します。[ 43 ] AWS セービング プランは、時間単位の支出コミットメントに基づいて購入されます。この時間単位のコミットメントは、購入するセービング プランの割引価格を使用して行われます。たとえば、コンピューティング セービング プランで 3 年間、1 時間あたり 5 ドルを支出することを約束できます。[ 34 ]
2006 年 8 月にサービスを開始した当初、EC2 サービスはLinuxを提供し、その後Sun MicrosystemsのOpenSolarisとSolaris Express Community Edition も提供しました。2008 年 10 月には、EC2 は利用可能なオペレーティングシステムのリストにWindows Server 2003とWindows Server 2008オペレーティングシステムを追加しました。[ 44 ] [ 45 ] 2011 年 3 月にはNetBSD AMI が利用可能になりました。[ 46 ] 2012 年 11 月には、Windows Server 2012 のサポートが追加されました。[ 47 ]
2006 年以来、FreeBSD 開発者でセキュリティ責任者のColin Percival はAmazon に FreeBSD を追加するよう働きかけてきました。 [ 48 ] 2012 年 11 月、Amazon はEC2 でFreeBSD を実行することを正式にサポートしました。[ 49 ] [ 50 ] [ 51 ] FreeBSD/EC2 プラットフォームは Percival によって維持されており[ 52 ]、彼は安全な重複排除Amazon S3クラウドベースのバックアップ サービスTarsnapも開発しました。[ 53 ]
Amazon は、 FedoraとRed Hat Enterprise Linuxをベースにした独自の Linux ディストリビューションを、 Amazon Linux AMIという低価格な製品として提供しています。バージョン 2013.03 には、Linux カーネル、Java OpenJDKランタイム環境、GNU コンパイラ コレクションが含まれていました。[ 54 ]
2020年11月30日、AmazonはEC2サービスにmacOSを追加すると発表した。当初はMac Mini上で動作するmacOS MojaveとmacOS Catalinaのサポートが発表された。[ 1 ]
Amazon Elastic Container Registry (ECR) は、Amazon EC2 インスタンスがリポジトリやイメージにアクセスするための Docker レジストリ サービスです。[ 55 ]
Amazon Elastic Kubernetes Service (EKS) は、インスタンスのプロビジョニングや管理を必要とせずに EC2 上で動作するマネージド Kubernetes サービスです。[ 55 ]
EC2インスタンスを起動する際、ブートディスクまたは「ルートデバイス」として2種類のストレージを選択できます。1つ目は、ローカルの「インスタンスストア」ディスクをルートデバイスとして使用する方法です(当初はこれが唯一の選択肢でした)。2つ目は、EBSボリュームをルートデバイスとして使用する方法です。インスタンスストアボリュームは一時的なストレージであり、EC2インスタンスを再起動しても保持されますが、インスタンスが停止または終了した場合(API呼び出しや障害などによる場合)、このストレージは失われます。
Amazon Elastic Block Store (EBS) は、Amazon EC2 インスタンスに接続できる生のブロック デバイスを提供します。これらのブロック デバイスは、通常の生のブロック デバイスと同様に使用できます。一般的な使用例では、ファイルシステムを使用してデバイスをフォーマットし、マウントします。さらに、EBS はスナップショットやクローニングなどの高度なストレージ機能をサポートしています。EBS ボリュームの サイズは最大 16 TB です。EBS ボリュームは複製ストレージ上に構築されているため、単一のコンポーネントの障害によってデータが失われることはありません。EBS は 2008 年 8 月に Amazon によって一般に公開されました。[ 9 ]

EBS ボリュームは、EC2 インスタンスの存続期間とは無関係に永続ストレージを提供し、実際のサーバーのハードドライブとよく似た動作をします。より正確には、Amazon のディスクアレイによってバックアップされたブロック デバイスとしてオペレーティングシステムから認識されます。OS は、デバイスを自由に使用できます。最も一般的なケースでは、ファイルシステムがロードされ、ボリュームはハードドライブとして機能します。もう 1 つの使用方法として、2 つ以上の EBS ボリュームを組み合わせて RAID アレイを作成する方法があります。RAID を使用すると、EBS の速度や信頼性を向上させることができます。ユーザーは、1 GB から 16 TB までのサイズのストレージ ボリュームを設定および管理できます。ボリュームはスナップショットをサポートしており、GUI ツールまたは API から取得できます。EBS ボリュームは、インスタンスの実行中にインスタンスにアタッチまたはデタッチでき、あるインスタンスから別のインスタンスに移動できます。[ 56 ]
Simple Storage Service (S3)は、EC2 インスタンスからデータにアクセスできるストレージシステムであり、認証済みの呼び出し元からはネットワーク経由で直接データにアクセスできます (すべての通信は HTTP で行われます)。Amazon は、EC2 インスタンスと S3 ストレージ間の「同一リージョン内」の通信帯域幅に対して課金しません。異なるリージョンに保存されている S3 データ (たとえば、米国東海岸の EC2 インスタンスからヨーロッパに保存されているデータ) にアクセスする場合は、Amazon の通常の料金が適用されます。
S3ベースのストレージは、1ギガバイトあたり月額料金制です。アプリケーションはAPIを介してS3にアクセスします。例えば、Apache Hadoopは、MapReduceジョブ中にS3ストレージへの読み書きをサポートするために、特別なs3:ファイルシステムをサポートしています。また、Linux用のS3ファイルシステムもあり、リモートのS3ファイルストアをローカルストレージのようにEC2イメージにマウントします。S3は完全なPOSIXファイルシステムではないため、ローカルディスクとは動作が異なる場合があります(例えば、ロック機能はありません)。

Amazon のエラスティック IP アドレス機能は、従来のデータ センターのスタティック IP アドレスと似ていますが、重要な違いが 1 つあります。ユーザーは、ネットワーク管理者の助けを借りたり、DNS がバインディングを伝播するのを待ったりすることなく、プログラムによって任意の仮想マシン インスタンスにエラスティック IP アドレスをマッピングできます。この意味で、エラスティック IP アドレスは仮想マシン インスタンスではなくアカウントに属します。明示的に削除されるまで存在し、インスタンスに関連付けられていない場合でもアカウントに関連付けられたままになります。[ 57 ]

Amazon CloudWatch は、Amazon の EC2 顧客に対して、CPU、ディスク、ネットワーク、RDS データベース レプリカのレプリカ ラグなどのリソース使用状況をリアルタイムで監視する Web サービスです。[ 58 ] CloudWatch は、インスタンスで追加のソフトウェアを実行しない限り、メモリ、ディスク スペース、ロード アベレージ メトリクスを提供しません。2017 年 12 月以降、Amazon は、ディスク情報と以前は利用できなかったメモリ情報を含む、Windows および Linux オペレーティングシステム用の CloudWatch エージェントを提供しています。[ 59 ]以前は、Amazon は Linux インスタンスが OS 情報を収集するためのサンプル スクリプトを提供していました。[ 60 ] [ 61 ]データは集約され、AWS 管理コンソールを通じて提供されます。また、顧客がエンタープライズ監視ソフトウェアを通じて EC2 リソースを監視したい場合は、コマンドライン ツールや Web API を介してアクセスすることもできます。[ 62 ] Amazon は、クライアントが CloudWatch アラームを操作できるようにする API を提供しています。[ 63 ]
Amazon CloudWatch によって収集されたメトリクスにより、オートスケーリング機能で EC2 インスタンスを動的に追加または削除できます。[ 64 ]顧客は監視インスタンスの数に応じて課金されます。
2011 年 5 月以降、Amazon CloudWatch はカスタム メトリクス[ 65 ]を受け入れ、Web サービス API を介してプログラムで送信し、アラームの設定を含め、他のすべての内部メトリクスと同じ方法で監視できます。また、2014 年 7 月以降は Cloudwatch Logs サービスも利用可能です。[ 66 ]
Amazon CloudWatchの基本機能は、Amazonの無料利用枠に含まれています。

Amazon の EC2 の自動スケーリング機能により、サイトのトラフィックに合わせてコンピューティング能力を自動的に調整できます。[ 67 ]スケジュールベース (例えば、時間帯) およびルールベース (例えば、CPU 使用率のしきい値) の自動スケーリングメカニズムは、使いやすく、シンプルなアプリケーションには効率的です。ただし、潜在的な問題の 1 つは、VM が使用可能になるまでに数分かかる場合があり、時間制約のあるアプリケーションには適さないことです。VM の起動時間は、イメージサイズ、VM タイプ、データセンターの場所などに依存します。[ 68 ] EC2 を使用すると、需要に応じて動的に容量を増やし、リソースに迅速にアクセスできます。[ 69 ]



オンデマンド EC2 インスタンスは時間単位で課金されます。例えば、us-east-1 リージョンの Linux、m5.large、EC2 インスタンスの場合、1 時間あたり 0.096 ドルとなります。料金は、インスタンスの種類、リージョン、およびオペレーティングシステムによって異なります。EC2 のオンデマンド料金の詳細は、AWS Web サイトをご覧ください。
EC2の他の料金モデルには、それぞれ異なる料金体系が適用されます。
スポットインスタンスにもインスタンス時間あたりの料金が発生しますが、その料金はEC2スポット容量の供給状況に基づいて定期的に変動します。
リザーブドインスタンスとコンピューティング節約プランは、時間単位で料金が発生します。これらの予約ツールはそれぞれ、支払い方法、契約期間、および使用する予約商品に基づいて、時間単位での料金が設定されています。これらの料金は、1年間または3年間の契約期間で固定されます。
Amazon EC2の料金は、1つのvCPUと0.5GBのRAMを搭載した「nano」インスタンスの月額2.5ドルから、32のvCPUと488GBのRAMを搭載した「xlarge」タイプのインスタンスの月額最大3997.19ドルまで幅があります。
上記のグラフは、Amazon EC2 の価格設定を、Microsoft Azure、Google Cloud Platform、Kamatera、Vultr などの類似のクラウド コンピューティング サービスと比較したものです。[ 70 ]

EC2 の耐障害性を高めるために、Amazon は他のアベイラビリティ ゾーンの障害から隔離されるように設計されたアベイラビリティ ゾーンを開発しました。アベイラビリティ ゾーンは同じインフラストラクチャを共有しません。複数のアベイラビリティ ゾーンで実行されているアプリケーションは、より高い可用性を実現できます。[ 71 ]
EC2では、インスタンスの地理的な配置をユーザーが制御できるため、レイテンシーの最適化と高い冗長性を実現できます。例えば、ダウンタイムを最小限に抑えるために、ユーザーは複数のゾーンにサーバーインスタンスを配置し、それぞれのインスタンスがほとんどの障害原因に対して互いに隔離されるように設定できます。これにより、一方のインスタンスが他方のインスタンスをバックアップすることが可能になります。
Amazon Relational Database Serviceのような高可用性データベースサービスは、EC2インスタンスとは別に実行されます。
2008年7月初旬、スパム対策組織のOutblazeとSpamhaus.orgは、スパムやマルウェアの配信に関する問題のため、AmazonのEC2アドレスプールをブロックし始めた。[ 72 ]
2010年12月1日、アマゾンは米国で政治的圧力を受けた後、ウィキリークスへのサービスを停止した。 [ 73 ]アサンジは、ウィキリークスは「レトリックと現実を切り離すため」に、サービスから排除される可能性が高いことを承知の上でアマゾンを選んだと述べた。[ 74 ] [ 75 ]インターネットグループAnonymousは報復としてEC2への攻撃を試みたが、アマゾンはこの攻撃の影響を受けなかった。[ 76 ]
2010年12月12日、Amazonのウェブサイトが一時的にオフラインになったが、当初は攻撃によるものかハードウェア障害によるものかは不明だった。後にAmazonの担当者はハードウェア障害によるものだと述べた。[ 77 ]
2011 年 4 月 21 日午前5 時 (米国東部時間) 直前に、EC2 の北バージニア データ センターで障害が発生し、Foursquare、Springpad、Reddit、Quora、Hootsuiteなど複数の Web サイトがダウンしました。[ 78 ] [ 79 ] [ 80 ]具体的には、Amazon の elastic-disk およびデータベース サービスの使用がハングアップ、失敗、または遅延しました。その日の東部時間午後遅くまでに、データ センターの一部 (Amazon の用語では 4 つの「アベイラビリティ ゾーン」のうち 3 つ) でサービスが復旧しました。[ 81 ]少なくとも一部の顧客の問題が 4 月 25 日の時点で継続していました。[ 82 ]また、あるゾーンの EBS ボリュームの 0.07% が失われました。EBS の障害は、この障害が発生する前から通常の運用の一部であり、Amazon によって文書化されたリスクでしたが、障害の数と同時障害の数により、一部の EC2 ユーザーは準備不足だった可能性があります。
2011年8月6日(日)、Amazonはアイルランドの可用性ゾーンの1つで停電に見舞われた。[ 84 ]当初、停電の原因は落雷とされたが、8月11日、アイルランドの電力供給会社ESB Networksはこれを原因として否定したが、執筆時点では問題の原因を確認できていない。[ 85 ]この停電により、AmazonのEBSインフラストラクチャに関する複数の疑問が生じ、ソフトウェアのいくつかのバグが露呈した。バグにより、クラッシュ中に書き込み操作の途中でEBSボリュームを復旧した際に、一部の顧客のデータが削除された。[ 86 ]
2011年8月8日、アマゾンの北バージニアデータセンターで再びネットワーク接続障害が発生し、Reddit、Quora、Netflix、FourSquareなどがダウンした。[ 87 ]この障害は約25分間続いた。
2012年10月22日、太平洋標準時 午前10時頃から午後4時頃にかけて、バージニア州北部で別のデータセンター障害が発生した 。Edmodo、Airbnb、Flipboard、Redditなどの顧客が影響を受けた。Anonymousが犯行声明を出したが、Amazonはこの主張を否定した。[ 88 ]