AWS 『Amazon Elastic Compute Cloud(Amazon EC2)』

![aws-ec2-eyecatch.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/343290/67c743c8-1ed2-9333-4711-e38feb0366b9.png)


#EC2とは
![server-2160321_1920.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/343290/a575e945-92f7-032d-2f4d-73aa902acd72.jpeg)


EC2はクラウド上で簡単に仮想サーバーを立ち上げることのできるウェブサービスです。__『インスタンス』__という単位でサーバーが管理されています。

###メリット

- 数分でサーバーを立ち上げることができる（オンプレの場合、サーバーの調達等を含めて数ヶ月）
- 必要なときに必要な数だけサーバーを用意できる（水道、ガス、電気のようなイメージ）

EC２を起動する際には、元となるイメージを選択してインスタンスを作成しますが、そのイメージのことを__[『Amazon Machine Image(AMI)』](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/AMIs.html)__と呼びます。

#EC2の性能
![artificial-intelligence-3382507_1920.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/343290/d9c921e1-0f5a-bc9e-b533-9506e75d33fe.jpeg)


EC2の性能はサーバーを立ち上げる際の__『インスタンスタイプ』__というもので決まります。

インスタンスタイプは__『c5.large』__、__『r5.2xlarge』__のように表され、様々なユースケースに最適化された幅広いタイプが提供されています。

- 汎用
- コンピューティング最適化
- メモリ最適化
- 高速コンピューティング
- ストレージ最適化

詳しくは__[『Amazon EC2 インスタンスタイプ』](https://aws.amazon.com/jp/ec2/instance-types/)__

#EC2の費用
![coins-1726618_1920.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/343290/e98068d9-cd10-b734-25b4-237f7d819896.jpeg)

EC2のインスタンスには__『Running(起動中)』__、__『Stopped(停止中)』__、__『Terminated（削除済み）』__の３つの状態があります。
基本的にEC2自体の料金は、

- Running(起動中)時間
- インスタンスタイプ
- AMI
- サーバーを立ち上げるリージョン（地域）

によって決まります。

しかし、EC2を停止させてもそれに結びついている__[『EBS（ブロックストレージサービス）』](https://aws.amazon.com/jp/ebs/)__については料金が発生します。また、IPアドレスを固定化するための__[『Elastic IP』](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html)__を取得していながら、EC2インスタンスに紐づけていないと別途料金が発生するため注意が必要です。

詳しくは__[『Amazon EC2 の料金』](https://aws.amazon.com/jp/ec2/pricing/)__

#スポットインスタンスとリザーブドインスタンス
![restaurant-2585265_1920.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/343290/6fecec1c-afc6-8943-c1ad-9bc523265a47.jpeg)


上記の料金形態は__『オンデマンドインスタンス』__という必要なときに使った分だけ料金を支払うという料金形態でしたが、__『より安くAWSを使いたい！！』__という場合に__『スポットインスタンス』__と__『リザーブドインスタンス』__を使用するといった選択肢があります。

###スポットインスタンス
__『余っているEC2リソース』__を入札形式で安く使用できる形式です。しかし、同じインスタンスタイプのリクエストが増え、余剰なリソースがなくなるとインスタンスが__『自動的に停止』__されてしまうというリスクがあります。したがって、長期利用ではなく__『一時的にスペックの良いインスタンスを安く使いたい』__という場面では良い選択肢の１つになります。

###リザーブドインスタンス
__『長期割引』__のことです。オンデマンドインスタンスと比べて__『最大75％OFF』__の価格で、EC2を利用できます。スタンダードタイプですと__『1年間または3年間__』の期間を選択できます。__『サービスリリース後にインスタンスタイプを固定したい』__という場面で使うと費用をかなり抑えることができます。 

#ELB(Elastic Load Balancing)
![justice-423446_1920.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/343290/71a695cc-405e-3103-844c-d9424e167dcc.jpeg)

リリースしたサービスの人気が出て__『スケールアップ（サーバーの質をあげる）』__の限界を迎えた場合や、__『単一障害点(SPOF)』__を無くす設計をする際に用いられるベストプラクティスが__『スケールアウト（サーバーを複数用意する）』__です。スケールアウトをする際に__『ELB』__を利用することで、リクエストを各インスタンスに分散させることができます。

###特徴

- __自動分散__ ： ELBは、アプリケーションへのトラフィックを複数のターゲット (Amazon EC2 インスタンス、コンテナ、IP アドレス、Lambda 関数など) に自動的に分散します。

- __ヘルスチェック__ ： 設定された間隔で配下のEC２にリクエストを送り、各インスタンスが正常に動作しているかを確認する機能です。

#Auto Scaling
![document-3268750_1920.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/343290/829b8b2e-bff2-b826-ff45-9c1f30033553.jpeg)
システムの利用状況によって、ELBに紐付くインスタンスの数を自動的に増減させる機能です。

- 最小インスタンス数
- 最大インスタンス数
- インスタンスを増やす条件
- インスタンスを減らす条件

などを設定することにより、繁忙期や閑散期に自動的にリソースを最適化できます。


#リファレンス

- [アマゾン ウェブ サービス（AWS）とは？](https://aws.amazon.com/jp/about-aws/)
- [Amazon EC2](https://aws.amazon.com/jp/ec2/)
- [Elastic Load Balancing](https://aws.amazon.com/jp/elasticloadbalancing/)
- [AWS Auto Scaling](https://aws.amazon.com/jp/autoscaling/)
- [これだけでOK！ AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座（初心者向け21時間完全コース）](https://www.udemy.com/aws-associate/)