EC2とは?
仮想サーバを提供するコンピューティングサービス。オンプレミス環境でサーバーを用意しようとすると、OSのインストール、ラックの増設、ネットワークや電源の管理(面倒な配線の敷設)といった様々な作業が必要となってしまう。
加えて新サービスを構築する際は、必要となるコンピューティングリソースの「見立て」に基づいて、上記の作業を実施する必要がある。万一リソースが足りない際は、サービスとして致命的だし、リソースが大きすぎた場合は採算が取れなくなる。
そこでAmazon Elastic Compute Cloud (EC2)の出番。
「インスタンス」と呼ばれる単位でサーバが管理される。これさえあれば簡単にOSまで搭載された「箱」が用意された状態まで持っていける。なのでWebサイトを公開したいとなったときも、「まずはApacheをインスタンスにダウンロードして、Webサーバを作って。。。」というところから話を始められるようになる。
EC2を起動するときは、元となるイメージを選んでインスタンスを作成する。Amazon Machine Image (AMI)と呼ばれる。
インスタンスは「箱」でありハードウェア。
AMIはOS諸々の設定を担う「種」のような存在。
画像引用:Amazon EC2のAMIとインスタンスの違いは何か?
こんな形で、インスタンスにインストールするOSを選択することができる。
画像引用:Amazon EC2のAMIとインスタンスの違いは何か?
AMIにはAmazon Linux AMIやRed Hat Enterprise linux, Microsoft Windows Serer といったAWSが標準で提供しているものや、各ベンダーがサービスをプリインストールしたAMIがある。
インスタンスタイプ
EC2ではインスタンスのスペックを選択することができる。
インスタンスタイプは「m5.large」「p3.8large」といった形で表記される。
EBS
ディスク機能であるEBSがセットになる。AWSが提供するブロックストレージサービス。
EC2→仮想サーバ
EBS→HDD
のような関係性。EBSの性能が優秀であればパフォーマンスも上がる。
状態
Running
Stopped
Terminated
の3つがある。Stopped(停止中)としてもEBSの料金は課金され続けるので注意。
コスト最適化のための方法
需給を一致させる方法と、トリッキーなインスタンス購入方法を採用する方法の2パターンがある。
-
需給を一致させる方法
CloudWatchで日頃から自分のサービスで動いているデータ量を観測し、EC2のAutoScalingでリソースの調整を行うことができる。 -
トリッキーなインスタンス購入方法
通常使うインスタンスは「オンデマンドインスタンス」と呼ばれ、これの価格が定価にあたるもの。
これに対して1年〜3年の利用を約束することで3~7割の値引きを受けられるのが「リザーブドインスタンス」である。
さらにその時の余剰リソースを入札性で購入するのが「スポットインスタンス」である。MAX9割ほどの値引きになることもあるとか。
いろいろな単語が出てきたが、
要は電力や資源の購入と同じで、先物で大量購入したり余剰在庫を安く買い取ったりするイメージ。