AWS認定ソリューションアーキテクト(SAA)試験対策 - EC2まとめ
EC2はハイパーバイザ型の仮想サーバです。
サーバレス化が進んでいますが、ほとんどのAWSサービスの大元はEC2の上に構築されているのでは?と想像できますので、そういった意味でも重要なサービスで日々進化し続けています。
試験対策として、EC2に関係する各種用語についてまとめてみました。
インスタンスタイプ
まず、インスタンスについてですが、「インスタンス=サーバ」と考えて特に問題ないです。
インスタンスタイプは、サーバのスペックに関係する種類になり、以下のような形式で表されます。
インスタンスファミリーは世代を含むことを覚えておきましょう
インスタンスファミリーは特性がありますので用途にあったものを選択するようにしましょう。
用途 | インスタンスファミリー |
---|---|
汎用 | ax / tx / mx |
コンピューティング最適化 | cx |
メモリ最適化 | rx / xx / zx |
高速コンピューティング | px / gx / fx |
ストレージ最適化 | ix / dx / hx |
最新のインスタンスファミリーはAWSのここから確認できます。
インスタンス購入オプション
インスタンスの購入オプションは、適切なオプションを選択することでコストを押さえることができます。
以下の6種類の特徴について理解しておきましょう。
- オンデマンド
- リザーブドインスタンス
- スポットインスタンス
- ハードウェア占有インスタンス(Dedicated インスタンス)
- Dedicated Host
- Bare Metal
オンデマンドインスタンス
起動するインスタンスに対して秒単位で課金されるタイプです。
試験運用など運用方法が未確定な場合や定期的に停止するようなインスタンスの場合は、オンデマンドインスタンスタイプを選択するとよいでしょう。
一番無難なインスタンスタイプで運用する中で他のインスタンスタイプに移行できないかを検討することも可能です。
クラウドならではの運用方法ですね。
リザーブドインスタンス
利用期間を長期間(1年~3年)指定することで安くなるタイプのインスタンスです。
24時間365日稼働させるようなインスタンスであれば費用を抑えることができます。
また、リザーブドインスタンスには2つのタイプが存在します。
スタンダード | コンバーティブル |
---|---|
インスタンスファミリーが変更できない | インスタンスファミリーが変更できる |
安い 割引率:1 年 (40%)、3 年 (60%) | 高い 割引率:1 年 (31%)、3 年 (54%) |
マーケットプレイスで売ることができます。
スポットインスタンス
未使用の EC2 インスタンスを利用することで、コストを大幅(条件によっては90%程度)削減することができます。
途中で破棄される可能性もあるため、一時的な拡張に利用する必要があります。
また、途中で処理が中断しても問題ないようにアプリケーションを構築しておくことが重要です。
ハードウェア占有インスタンス(Dedicated インスタンス)
ハードウェア占有インスタンスは、他のアカウントのEC2インスタンスと共有されることはありません。
言い換え得ると、同じアカウントのインスタンスとは共有されることになります。
Dedicated Host
ハードウェア占有インスタンスの違いは、ハードウェアを1つのインスタンスで専有することができます。
恐らく、マイクロソフトのライセンス問題のために考慮されているタイプだと思われます。
Bare Metal
EC2の基盤となるハードウェアに直接アクセスすることができるため、「Intel® VT-xの機能を利用する」といったことも可能になります。
インスタンスサイズが「metal」となっているインスタンスタイプが対象です。
m5.metal、m5d.metal、r5.metal、r5d.metal、z1d.metal
キーペア
EC2にSSHでログインするために利用される公開鍵方式の公開鍵と秘密鍵のキーペアです。
EC2作成時にも作成することができますが、事前に作成したキーペアを指定することもできます。
・秘密鍵はファイル名「xxxxxx.pem」のファイルです。
・しっかりと管理をして紛失や第三者に渡さないようにしましょう。
AMI(Amazon Machine Image)
EC2インスタンスのOS設定や各種ソフトウェア設定がされたマシンイメージです。
AMIにはAWSで用意されたもの以外にサードパーティ製も利用することができます。
また、自分でソフトウェア設定などを行った状態をAMIとして保存することもできますので、同じ構成のEC2インスタンスを複数作成する場合などに利用できます。
作成したAMIにはEBSのスナップショットとEC2のOS設定のイメージの両方が含まれます。
そのため、EBSのスナップショットを別で取得する必要はありません。(試験によく出ます!)
ストレージの種類
EC2で利用できるストレージは大きく分類するとインスタンスストアとEBS(Elastic Block Store)という2種類があります。
EBSについては利用用途に応じて更に詳細に分類することができますので、種類と特徴について理解しておきましょう。
インスタンスストア
インスタンスストアで押さえておく特徴は3つあります。
・無料
・インスタンスの停止・終了でクリアされる
・ネットワークストレージではない
インスタンスの停止・終了でクリアされるので、永続的に保存したいデータの場合は選択するとよいです。
EBS(Elastic Block Store)
まず、EBSの特徴には次のものがあります。インスタンスストアと比較して理解しておきましょう。
・有料
・EC2とは独立しているため、インスタンスの停止・終了でクリアされない
・ネットワークストレージである
※EC2インスタンス削除時にEBSを削除するかしないかを設定できる
・AZ内で冗長構成となっているため耐久性が高い
・EC2は他のAZのEBSにはアクセスできない
・複数のEC2インスタンスで共有できない
EBSは単一のEC2インスタンスにしか割り当てることができません。
システムの要件などで複数のEC2インスタンスで共有したい場合、つまりファイルサーバ用に同じファイルを参照・更新したい場合はEBSではなくEFS(Elastic File System)とS3方法があります。
最適化インスタンス
EBSはネットワークで接続されたストレージです。そのためネットワークが混雑するとパフォーマンスに影響がでるのですが、そのネットワークの帯域を確保できるオプションが最適化インスタンスオプションです。
EBSのバックアップ
EBSのデータをバックアップする場合にはスナップショットを取得する方法が一般的です。
取得したスナップショットの保管先はS3になります。
スナップショットは最初フルバックアップでその後は増加バックアップです。
スナップショットを取得する場合の注意点は、静止点をもうけるということです。
簡単に言うとEC2を停止してから取得するとよいです。
EBSの種類
EBSのストレージには用途によっていくつか用意されています。
EBSの種類 | 特徴 |
---|---|
汎用SSD | 汎用的に利用できる |
プロビジョンドSSD | 高スループットが必要な場合に利用します。 目安としては、10000IOPSや160MB/sが必要な場合です。 但し、利用料金は高く設定されています。 |
スループット最適化HDD | 高スループットが必要で順次アクセスで読み込む場合は、コスト的にも利用料金が低く設定されていますので利用を検討しましょう。 |
コールドHDD | アクセス頻度が低いデータ用のストレージタイプです。 利用料金も低く設定されています。 |
Placementグループ
複数のインスタンスを利用し互いに高速に低レイテンシでやり取りを必要とする場合は、各インスタンスの物理的な距離が長いとネットワーク遅延が影響してきます。
そのような用途の場合にインスタンス間のネットワーク遅延を少なくするために利用できるのがPlacementグループです。
同一AZ内の距離の近いインスタンス同士でグループ化することができます。
EC2メターデータの参照方法
試験にもよくでますが、実務でもよく利用するのがこのメタデータの参照です。
EC2インスタンスの場合、IPアドレス、ホスト名、AMIのIDなどはEC2のメタデータから取得することができます。
コマンドはcurlコマンドを利用し、以下の構文となります。
curl http://169.254.169.254/latest/meta-data/<オプション>
オプションの一覧
- ami-id
- ami-launch-index
- ami-manifest-path
- block-device-mapping/
- events/
- hostname
- instance-action
- instance-id
- instance-type
- local-hostname
- local-ipv4
- mac
- metrics/
- network/
- placement/
- profile
- public-hostname
- public-ipv4
- public-keys/
- reservation-id
- security-groups
- services/
Linuxの場合、ifconfigコマンドを利用する方法も考えられますが、AWS環境でEC2を利用するのであればメタデータを利用する方が一般です。