EC2とは、Elastic Compute Cloudの頭文字の略です。
(Compute Cloudの頭文字Cが2つあるため、EC2になった模様)
AWSの主要サービスベスト10には入るサービスと思います。
EC2は端的に言うと、「仮想サーバ」です。
数分で利用可能となるオンデマンドの従量課金性(数秒単位)で利用可能です。
要は、使用した分だけ払ってくださいねっと言うことです。
EC2を立ち上げるところから、各種専門用語について解説していきます。
EC2インスタンスを起動する
AMI(エー・エム・アイ)を選択
AMIとは、EC2インスタンスを作成する際に必要となる仮想サーバイメージのことを言います。
(Amazon Machine Imageの略です)
AMIは以下の種類が提供されていて、それを使って、EC2インスタンスを作成します。
- AWS提供(WindowsOSや各種Linuxディストリビューション)のイメージ
- AWS Marketplaceで購入できる各種ソフトウェアのインストール済みのイメージ
- 利用者が作成したカスタムAMIのイメージ
インスタンスタイプの選択
インスタンスタイプは、EC2インスタンスのマシンスペックを規定する仮想CPUコア数や
メモリ容量などの組み合わせで、そのバランスによって、インスタンスファミリと呼ばれる
グループに分けられます。
インスタンスタイプとは、インスタンスファミリ&インスタンス世代とインスタンスサイズで構成されています。
詳しくはこちらをご確認ください。
インスタンスファミリの選び方
インスタンスファミリにより、用途が以下のように分けられています。
用途 | インスタンスファミリ |
---|---|
汎用(バランス重視) | t m a mac |
コンピューティングの最適化(CPU重視) | c |
高速コンピューティング(GPU) | p inf g f |
メモリ最適化 | r x ハイメモリ z |
ストレージの最適化 | i d h |
色々あって迷うと思います。
そう言う場合は、汎用(バランス重視)の「m」を基準に考えることがポイントです。
私が構築したあるシステムでは、1日のうち使用頻度が少ないものは、「t2.micro」
にしてます。2年ほど運用していますが、問題なく稼働してます。
もし、レスポンスが悪くなったりしたら、インスタンスタイプを上げようというスタンスです。
ここは、業務要件によってまちまちなので、ケースパイケースで決めてください。
インスタンスの購入方法
インスタンス購入種類 | 内容 |
---|---|
オンデマンドインスタンス | 通常のインスタンス購入方式 |
リザーブドインスタンス | 一年または三年の期間利用を予約することで、通常のオンデマンド料金に比べて大幅な割引価格が適用される。 スタンダードとコンバーティブルの2種類あり、コンバーティブルが後からの 変更要素が多いため、値引率はスタンダートと比べると若干少ない。 |
物理対応可能なインスタンス | 物理サーバにインスタンスを起動して制御が可能なタイプのインスタンス ・ハードウェア専有インスタンス ✅ 専用HWのVPCで実行されるEC2 ✅ ホストHWのレベルで、他のAWSアカウントに属するインスタンスから物理的に分離する ✅ 同じAWSアカウントのインスタンスとはHWを共有する可能性がある ・Dedicated Host ✅ EC2容量を完全にお客様専用として利用できる物理サーバ ✅ サーバにバインドされた既存のソフトウェアライセンスを利用可能 ・Bare Metal ✅ アプリケーションが基盤となるサーバーのプロセッサーとメモリーに直接アクセス可能なインスタンス ✅ AWSの各種サービスとの連携が可能でOSが直接下層のハードウェアにアクセス可能 |
スケジュールドリザーブドインスタンス | 1年間にわたり毎日、毎週、または毎月ベースの指定された開始時間で繰り返しキャパシティ予約を購入する。 継続的には実行されないが定期的なスケジュールで実行されるワークロードに利用する。 ※2021年5月時点では、オレゴンリージョンのみの機能です |
スポットインスタンス | 未使用のEC2(予備用)を入札式で利用するため、オンデマンドインスタンスに 比べて最大90%引きで利用できる。 ただし、起動に時間がかかったり、予備用のため途中で削除される可能性がある ➡️一時的な拡張などの用途で利用が良い |
Saing Plan | 1〜3年の期間に一定の使用料を守ることによりAmazonEC2コストを削減する ✅ リザーブドインスタンスと同様に、1年または3年の期間に特定量の処理能力(USD/時間で測定)を使用する契約を結ぶことで適用される割引契約 ✅ AWSコンピューティング使用料金を最大72%節約できる ✅ EC2、Fargate、Lambdaに適用可能 |
ストレージの選択
ストレージ種類
EC2に接続できるストレージは次の2種類があります。
ストレージ種類 | 内容 |
---|---|
EBS(Elastic Block Store) | EBSはAZ内に作成されるネットワーク接続型のストレージで、不揮発性(永続的なデータボリューム)と言う特徴がります。 費用は有料です。 |
インスタンスストア | EC2の物理ホストの内蔵ストレージで、揮発性(一時的なデータボリューム)という特徴があり、EC2を停止すると保存されていたデータは削除されます。 費用は無料です。(EC2の費用に含まれる) |
EBSボリュームタイプ
EBSには、3つのタイプがあります。内訳はこんな感じです。
General Purpose SSD | Provisioned IOPS SSD | Magnetic | |
---|---|---|---|
ボリュームサイズ | 1GiB~16TiB | 4GiB~16TiB | 1GiB~1TiB |
IOPS | 3 IOPS/GBのベースパフォーマンス 最大10,000 IOPS ベースパフォーマンスが3,000 IOPS未満の 場合、3,000 IOPSまでのバースト機能 | 容量(GB)の30倍までのIOPSを指定 最大 20,000 IOPS | 平均100 IOPS |
価格 | 容量のみ | 容量 指定した性能(IOPS) | 容量 発生したIO数 |
ユースケース | 一般(汎用) | 10,000 IOPSを超える性能が求められるアプリ・DB | IOがあまり発生せず、コストが重視されるマシン |
※IOPS (Input /Output Per Second)・・・1秒あたりにディスクが処理できるI/Oアクセスの数
Provisiond IOPS SSDはEBSディスク性能を高めることができますが、
EBSはネットワーク型のストレージのため、ネットワークがボトルネックになります。
通常のEC2では、業務ネットワークの帯域とEBSのディスクI/Oの帯域が競合した状態です。
そこで、EC2を「EBS最適化インスタンス」と言うタイプで起動するとEBSのディスクI/O
専用の帯域が確保され、EBSのディスクI/Oが安定化します。
セキュリティグループ
EC2のファイアーフォールであるセキュリティグループの設定をします。
EC2は少なくとも1つのセキュリティグループを適用する必要があり、
新しいセキュリティグループを作成するか、既存のセキュリティグループを設定します。
通信制御
インバウンドとアウトバウンドの設定を行います。
これにより、EC2へのアクセスやEC2からのアクセスが可能になります。
インバウンドとは外部から内部への通信
アウトバウンドとは内部から外部への通信
のことを言います。
公開鍵認証方式
EC2にログインするためにキーペアを使います。
キーペアとは公開鍵と秘密鍵を使った技術です。こんなイメージです。
ユーザデータの活用
ユーザデータはOSの起動スクリプトで、EC2の初回起動(作成時)に初期設定を自動設定される
ようにすることです。
例えば、「Apache Webサーバをインストールして、サービスを自動起動にしたい」と言う
のをEC2作成後に手動で毎回設定することを自動化できると言うことです。
設定するコマンドは以下のようなイメージです。一例です。
コマンド | 説明 |
---|---|
sed -i ‘s/^HOSTNAME=[a-zA-Z0-9¥.¥- ]*$/HOSTNAME=KiYO-SV/g’ | ホスト名をKiYO-SVに変更する |
/etc/sysconfig/network hostname ‘KiYO-SV’ | ネットワークホスト名をKiYO-SVに 変更する |
cp /usr/share/zoneinfo/Japan /etc/localtime | 日本の時間帯をコピー |
sed -i ‘s|^ZONE=[a-zA-Z0-9¥.¥- ¥”]*$|ZONE=”Asia/Tokyo”|g’ /etc/sysconfig/clock | サーバーの時間帯を日本の時間帯に設定 |
echo “LANG=ja_JP.UTF-8” > /etc/sysconfig/i18n | 言語設定をja_JP.UTF-8に設定 |
sudo yum update -y | ソフトウェアの更新状況を確認にする |
sudo install httpd -y | サーバーにApacheをインストールする |
EC2作成後に決まるID等はメタデータを使って設定します。
メタデータは以下のものがあります。一例です。
メタデータ | 説明 |
---|---|
ami-id | インスタンスの作成に使用されたAMI ID |
hostname | ホスト名 |
iam/security-credentials/role-name | IAMロール名 |
instance-id | インスタンスのID |
local-ipv4 | プライベートIPアドレス |
public-ipv4 | Public/ElasticIPアドレス |
AMIの活用
先に説明したようにAMIイメージからOS選択し、EC2を作成することが出来ます。
逆に、EC2の内容をAMIにすることが出来ます。
EC2のバックアップや、複製として使用できます。
AMIはリージョンにおいて一意のものであるため、他のリージョンではそのまま使用できません。
AMIを利用してEC2の構築・バックアップ・共有が可能になります。
用途 | 説明 |
---|---|
OSの選択 | 利用したいサーバのOSの選択としてAMIを利用 利用していたサーバを復元する際にAMIを利用 |
EC2のバックアップ | 既存のEC2インスタンスからAMIを作成できる EC2インスタンスをバックアップとして構成内容を保存する。 EBSボリュームのスナップショットも含まれる |
ゴールデンイメージ | 最適なEC2インスタンスの構成をAMIとした上で、構成を複数利用することができる。 最適なEC2インスタンス構成を反映したAMIをゴールデンイメージと呼ぶ |
AMIの共有 | AMIを共有するユーザのAWSアカウント番号を指定することで他のアカウントに共有可能 |
リージョンの移動 | AMIはリージョン内でのみ利用可能 別リージョンにコピーは可能。このAMIはそのリージョンのAMIとして別AMIとなる。 |
EBSの概要
先に説明したように、EBSはEC2と共に利用されるストレージです。
EBSの特徴
EBSの特徴として、以下のことが挙げられます。
- ネットワークで接続されたブロックレベルのストレージでEC2とは独立管理
- EC2を終了してもEBSデータは保持可能
- SnapshotをS3に保持可能
- 別途EBS料金が必要
- ボリュームデータはAZ内で複数のHWにデフォルトでレプリケートされており、冗長化不要
- セキュリティグループによる通信制御対象がで有り、全ポートを閉じてもEBSは利用可能
- データは永続的に保存
- EC2インスタンスは他のAZ内のEBSにはアクセスできない
- EC2インスタンスに複数のEBS接続することはできるが、EBSを複数インスタンスで共有することはできない
- ただし、プロブジョンドIOPSのみ複数インスタンスで共有することが可能となった
- 同じAZ内のインスタンスのみ付け替えが可能
スナップショットの特徴
EBSはスナップショットを利用してバックアップを取得します。
スナップショットの特徴として、以下のことが挙げられます。
- スナップショットでバックアップ可能
- スナップショットからEBSを復元する際は別AZにも可能
- スナップショットはS3に保存される
• スナップショットの2世代目以降は増分データを保存する増分バックアップとなる(1世代目を削除しても復元は可能)
• スナップショット作成時にブロックレベルで圧縮して保管するため、圧縮後の容量に対して課金が行われる - スナップショット作成時でもEBSは利用可能である。
- スナップショットはリージョン間を跨いで利用可能
- スナップショットは権限を変更することで、他のアカウントに移譲することが可能
スナップショットとAMIの違い
データのバックアップという意味では同じような感じですが、それぞれの違いを見てみます。
- AMI
- EC2インスタンスのOS設定などをイメージとして保持して、新規インスタンス設定に転用するもの
- Snapshot
- ストレージ・EBSのその時点の断面のバックアップとして保持するもの
- ストレージの復元や複製に利用
プレースメントグループ
AWSのリージョンにある各AZは、自然災害などに対して冗長性を担保するために、
地理的に離れた場所にあります。
そのため、リージョン内のAZ間は専用線で接続されているものの、異なるAZ内の
EC2へのアクセスには多少のレスポンス遅延が発生します。
そこで、単一AZにプレイスメントグループを作成し、その中にEC2を作成すると
EC2間のネットワーク接続を高速化することが出来ます。
プレイスメントグループは3種類あります。
プレイスメントグループ | 説明 |
---|---|
クラスター | ✅ 単一AZ内のインスタンスを論理的にグループ化した構成 ✅ 同じリージョン内の複数のピア VPC にまたがることも可能 ✅ グループ内のインスタンスは、TCP/IP トラフィックのフローあたりのスループット上限が高くなり、ネットワークの二分帯域幅の広い同じセグメントに配置されインスタンス間通信が向上する ✅ 低いネットワークレイテンシー、高いネットワークスループットを実現するアプリ ケーション向けの構成 |
パーティション | ✅ EC2 は各グループをパーティションと呼ばれる論理的なセグメントに分割した構成 ✅ プレイスメントグループ内の各パーティションにそれぞれ一連のラックがあり、プレイスメントグループ内のパーティション同士が同じラックを共有しない。 ✅ ラックを分離することで、アプリケーション内でのハードウェア障害による影響を隔離して、軽減する。 |
スプレッド | ✅ それぞれに独自のネットワークおよび電源がある異なるラックに別々に配置できるインスタンスのグループ ✅ 1 つのAZ内の、スプレッドプレイスメントグループに配置された 7 つのインスタンス は、7 つの異なるラックに配置される。 ✅ 少数の重要なインスタンスが互いに分離して保持できる。インスタンスが同じラック を共有するときに発生する可能性のある同時障害のリスクを軽減する。 |
次は「S3」について解説します。
「VPC」についてはこちらを確認下さい。
コメント