Amazon Elastic Compute Cloud(EC2 )は、 AmazonのクラウドコンピューティングプラットフォームであるAmazon Web Services(AWS)の一部であり、ユーザーは仮想コンピュータをレンタルして、独自のコンピュータアプリケーションを実行できます。EC2は、ユーザーがAmazon Machine Image(AMI)を起動して仮想マシン(Amazonでは「インスタンス」と呼びます)を構成できるウェブサービスを提供することで、アプリケーションのスケーラブルな導入を促進します。この仮想マシンには、必要なソフトウェアが含まれています。ユーザーは必要に応じてサーバーインスタンスを作成、起動、終了でき、アクティブなサーバーに対して秒単位で料金が発生します。そのため、「Elastic」という用語が使われています。EC2は、インスタンスの地理的な場所をユーザーが制御できるようにすることで、レイテンシの最適化と高度な冗長性を実現します。[2] 2010年11月、Amazonは自社の小売ウェブサイトプラットフォームをEC2とAWSに切り替えました。[3]
Amazonは2006年8月25日にEC2の限定公開ベータテストを発表し[4] 、先着順でアクセスを提供しました。Amazonは2007年10月16日に2つの新しいインスタンスタイプ(LargeとExtra-Large)を追加しました[5]。 2008年5月29日には、さらに2つのタイプ(High-CPU MediumとHigh-CPU Extra-Large)が追加されました[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は[15] KVMハイパーバイザーを中心としたカスタムアーキテクチャ(Nitroと呼ばれる)に基づく新しいC5ファミリーのインスタンスを発表しました。 [16] [17]「インスタンス」と呼ばれる各仮想マシンは、仮想プライベートサーバーとして機能します。Amazonは「Elastic Compute Units」に基づいてインスタンスのサイズを決定します。それ以外は同一の仮想マシンでも、パフォーマンスは異なる場合があります。[18] 2017年11月28日、AWSはベアメタルインスタンスを発表しました。これは、仮想化インスタンスタイプの提供のみから脱却したものでした。[19]
2019年1月現在、以下のインスタンスタイプが提供されていました。[20]
2018年4月現在[update]、インスタンスごとに以下の支払い方法が提供されていました。[21]
2025年、AWSはEC2を拡張し、Graviton4を搭載し最大600Gbpsのネットワーク帯域幅(C7gnよりも約30%高いコンピューティング性能)を提供するコンピューティング最適化C8gnファミリーを導入しました。また、適切なサイズのグラフィックス/機械学習ワークロード向けにNVIDIA L4 GPUの8分の1、4分の1、または2分の1をプロビジョニングできるG6f部分GPUインスタンスを導入しました。 [24] [25]
2018年4月現在[update]、AmazonはLinuxまたはWindowsを実行する最小の「ナノインスタンス」(t2.nano)仮想マシンに対して、1時間あたり約0.0058ドル(月額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月現在、[update]Amazonは新規アカウント所有者に無料のリソースクレジットのバンドルを提供していました[30] 。このクレジットは、「マイクロ」サイズのサーバー、ストレージ(EBS)、および帯域幅を1年間実行できるように設計されています。 [31]未使用のクレジットは、ある月から次の月に繰り越すことはできません。[32]
リザーブドインスタンスを使用すると、EC2またはRDSサービスのユーザーはインスタンスを1年または3年間予約できます。Amazonがインスタンスの運用に対して請求する時間単位の料金は、オンデマンドインスタンスに請求される料金よりも35~75%低くなります。[33] リザーブドインスタンスは、全額前払い、一部前払い、前払いなしの3つの異なる支払いオプションで購入できます。異なる購入オプションにより、異なる支払いモデルの構成が可能になり、予約料金を前払いする顧客にはより大きな割引が適用されます。[34]
リザーブドインスタンスは、リソースコミットメントに基づいて購入されます。これらの予約は、インスタンスタイプとそのインスタンスタイプの数に基づいて行われます。たとえば、3年間の契約で100個のi3.largeインスタンスを予約できます。
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はリザーブドインスタンス[41]の代替手段であり、コンピューティングSavings PlansとEC2インスタンスSavings Plansの2つの異なるプランタイプがあります。コンピューティングSavings Plansを使用すると、組織はEC2とFargateの使用をコミットし、コミットメントの有効期間内であればリージョン、ファミリー、サイズ、アベイラビリティゾーン、OS、テナンシーを自由に変更できます。EC2インスタンスSavingsプランは、コンピューティングSavings Plansよりも割引率が大きいですが、柔軟性が低く、ユーザーはリージョン内の個々のインスタンスファミリーにコミットして利用する必要がありますが、そのリージョンのファミリー内でインスタンスを変更する自由があります。[42]
AWSはコストエクスプローラーを使用して、お客様が行うべきコミットメントの推奨事項を自動的に計算し、そのコミットメントがAWSの請求書の月額料金としてどのように表示されるかを示します。[43] AWS Savings Plansは、時間単位の支出コミットメントに基づいて購入されます。この時間単位のコミットメントは、購入するSavings Planの割引価格を使用して行われます。たとえば、Compute Savings Planで3年間、1時間あたり5ドルの支出をコミットすることができます。[34]
EC2サービスは、2006年8月の開始時に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開発者でありセキュリティ責任者でもあるコリン・パーシバル氏は、AmazonにFreeBSDを追加するよう要請してきました。 [48] 2012年11月、AmazonはEC2でのFreeBSDの実行を正式にサポートしました。[49] [50] [51] FreeBSD/EC2プラットフォームは、安全な重複排除機能を備えたAmazon S3クラウドベースのバックアップサービスTarsnapも開発したパーシバル氏によって保守されています。[52 ]
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インスタンスに接続できるRAWブロックデバイスを提供します。これらのブロックデバイスは、他のRAWブロックデバイスと同様に使用できます。一般的なユースケースでは、デバイスをファイルシステムでフォーマットし、マウントします。さらに、EBSはスナップショットやクローン作成など、多くの高度なストレージ機能をサポートしています。EBSボリュームは最大16TBのサイズに対応しています。EBSボリュームは複製されたストレージ上に構築されるため、単一のコンポーネントに障害が発生してもデータ損失は発生しません。EBSは2008年8月にAmazonによって一般公開されました。[9]

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

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

Amazon CloudWatchは、AmazonのEC2顧客にCPU、ディスク、ネットワーク、RDSデータベースレプリカのレプリカラグなどのリソース使用率をリアルタイムで監視するウェブサービスです。[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使用率のしきい値)の自動スケーリングメカニズムは使いやすく、シンプルなアプリケーションには効率的です。ただし、VMが使用可能になるまでに最大数分かかる場合があり、時間重視のアプリケーションには適していないという潜在的な問題があります。VMの起動時間は、イメージサイズ、VMの種類、データセンターの場所などによって異なります。[68] EC2を使用する利便性により、需要に応じて容量を動的に増やし、リソースに迅速にアクセスできます。[69]



オンデマンドEC2インスタンスは時間単位で料金が設定されています。例えば、us-east-1リージョンのLinux、m5.large、EC2インスタンスの場合、1時間あたり0.096ドルです。料金は、インスタンスの種類、リージョン、およびインスタンスのオペレーティングシステムによって異なります。EC2の公開オンデマンド料金は、AWSのウェブサイトでご確認いただけます。
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日、Amazonは米国での政治的圧力を受け、WikiLeaksへのサービスを停止しました。 [73]アサンジ氏は、WikiLeaksがAmazonを選んだのは、おそらくサービスから排除されることを承知の上で、「レトリックと現実を切り離すため」だと述べました。[74] [75]インターネットグループのAnonymousは、報復としてEC2への攻撃を試みましたが、Amazonは攻撃の影響を受けませんでした。[76]
Amazonのウェブサイトは2010年12月12日に一時的にオフラインになりましたが、当初は攻撃によるものなのかハードウェアの故障によるものなのかは不明でした。Amazonの担当者は後に、ハードウェアの故障が原因だと述べました。[77]
2011年4月21日午前5時(東部時間)少し前、EC2のバージニア州北部データセンターで障害が発生し、Foursquare、Springpad、Reddit、Quora、Hootsuiteなど複数のウェブサイトがダウンした。[78] [79] [80]具体的には、Amazonのエラスティックディスクおよびデータベースサービスの使用が停止、失敗、または遅延した。同日東部時間午後遅くまでにデータセンターの一部(Amazonの用語では4つの「アベイラビリティゾーン」のうち3つ)でサービスが復旧したが、[81]少なくとも一部の顧客に対する問題は4月25日時点で継続していた。 [82]あるゾーンのEBSボリュームの0.07%も失われた。EBSの障害はこの障害が発生する前から通常運用の一部であり、Amazonによって文書化されたリスクであったが、[83]障害の数と同時発生の数を考えると、一部のEC2ユーザーは準備ができていない可能性がある。
2011年8月6日(日)、Amazonはアイルランドのアベイラビリティゾーンの1つで停電に見舞われました。[84]当初、停電の原因は落雷とされていましたが、8月11日、アイルランドのエネルギー供給業者ESB Networksはこれを原因として否定しましたが、本稿執筆時点では原因が何であったかは確認できませんでした。[85]この停電はAmazonのEBSインフラストラクチャに関する複数の疑問を引き起こし、ソフトウェアの複数のバグが露呈しました。これらのバグにより、クラッシュ中に書き込み中のEBSボリュームを回復する際に、一部の顧客のデータが削除されました。[86]
2011年8月8日、Amazonのバージニア州北部データセンターで再びネットワーク接続障害が発生し、Reddit、Quora、Netflix、FourSquareなどのサービスが利用できなくなりました。[87]障害は約25分間続きました
2012年10月22日午前10時から午後4時(太平洋標準時)頃、バージニア州北部で再びデータセンターの障害が発生しました。Edmodo、Airbnb、Flipboard、Redditなどの顧客が影響を受けました。匿名の人物が犯行声明を出しましたが、Amazonはこの主張を否定しました。[88]