📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

237行目: 237行目:
! style="background-color:#66CCFF;" | データ保持形式
! style="background-color:#66CCFF;" | データ保持形式
|-
|-
| EBS || Amazon EC2インスタンスと一緒に動作 || 単一AZ内で冗長化 || ブロックストレージ
| EBS || Amazon EC2インスタンスと一緒に動作 || 単一AZ内で冗長化 || [https://www.redhat.com/ja/topics/data-storage/file-block-object-storage ブロックストレージ]
|-
|-
| S3 || 単独のサービスとして動作 || 複数AZで冗長化 || オブジェクトストレージ
| S3 || 単独のサービスとして動作 || 複数AZで冗長化 || [https://www.redhat.com/ja/topics/data-storage/file-block-object-storage オブジェクトストレージ]
|-
|-
| EFS || Amazon EC2インスタンスにマウントされる事が多いが、<br>他サービスからも利用可能 || 複数AZで冗長化 || ファイルストレージ
| EFS || Amazon EC2インスタンスにマウントされる事が多いが、<br>他サービスからも利用可能 || 複数AZで冗長化 || [https://www.redhat.com/ja/topics/data-storage/file-block-object-storage ファイルストレージ]
|}
|}
</center>
</center>
<br><br>
== Amazon EC2とネットワーク ==
外部からAmazon EC2へアクセスする場合は、ネットワークの構築をする必要がある。<br>
<br>
<center>
{| class="wikitable" | style="background-color:#fefefe;"
|-
! style="background-color:#66CCFF;" | 名称
! style="background-color:#66CCFF;" | 説明
|-
| VPC || AWS上で仮想ネットワークを構築して、セキュリティや耐障害性を向上させる。
|-
| ENI (Elastic Network Interface) || インスタンスに新たなIPアドレスを付与する。
|-
| Elastic IP || インスタンスに固定のグローバルIPアドレスを付与する。
|-
| ELB (ロードバランサ) || 複数のインスタンスにアクセスを分散させて、可用性向上や負荷分散を自動化する。
|-
| Auto Scaling || 負荷に応じてインスタンス数を自動で変化させ、コストと性能のバランスを自動調整する。
|-
| プレイスメントグループ || 複数のインスタンスをグループ化して、インスタンス間の通信速度や耐障害性を向上させる。
|-
| SSHによるアクセス || キーペアで公開鍵認証によるSSH通信でインスタンスに接続して、外部からセキュアなインスタンスの操作を実現する。
|}
</center>
<br>
==== VPC ====
VPC (Virtual Private Cloud) とは、AWS上で仮想ネットワークを構築できるサービス (Amazon EC2とは別のサービス) であり、Amazon EC2も基本的にはこのVPC内に設置されて動作する。<br>
<br>
デフォルトの設定において、Amazon EC2インスタンスを作成するとデフォルトのVPCが自動的に紐付けられるため、単一のAmazon EC2であればVPCを意識しなくとも使用できる。<br>
しかし、複雑なシステムを構築する場合は、VPCの知識は必須となる。<br>
<br>
==== ENI ====
ENI (Elastic Network Interface) サービスを着脱 (アタッチ / デタッチ) することにより、ネットワークへの接続経路、すなわちインスタンスに付与されたIPアドレスの数を増減することができる。<br>
1つのENIに複数のIPアドレスを付与することもできる。<br>
<Br>
ENIが無い場合はネットワークにアクセスできないため、Amazon EC2インスタンスにはデフォルトで1つのENIが付加されている。<br>
また、ENIを追加することもできる。<br>
<br>
<u>※注意</u><br>
<u>なお、後述のElastic IPやセキュリティグループは、Amazon EC2インスタンスではなくENIに付与されているため、ENIのアタッチ / デタッチ時は再設定が必要となることに注意する。</u><br>
<br>
==== EFA ====
ENIに高速化が施されたEFA (Elastic Fabric Adapter) サービスも存在する。<br>
これは、大規模シミュレーションや機械学習等のハイパフォーマンス性能が求められる用途において、複数のコンピュータが連携して動作するHPC処理に適している。<br>
<br>
==== Elastic IP ====
Amazon EC2のインスタンスにおいて、グローバルIPアドレスは動的に付与されるため、再起動ごとにIPアドレスが変更される。<br>
これを防ぐため、Elastic IP (EIP) は固定のグローバルIPアドレスを割り振る。<br>
<br>
==== ELB ====
複数のサーバを並列に立ち上げ、アクセスを分散させることで負荷を軽減させる仕組みがロードバランサである。<br>
AWSにおいては、ELB (Elastic Load Balancer) と呼ばれるロードバランサがサービスとして提供されており、<br>
アクセスを複数のAmazon EC2インスタンス、あるいは、FargateやRDSのようなサービスに分散させることができる。<br>
<br>
また、下図のようにELB / ALBにおいて、分散先のインスタンスを複数のAZに配置することにより、冗長性の確保を実現することもできる。<br>
<br>
==== Auto Scaling ====
ELBで負荷分散をする場合、Amazon EC2インスタンスの数が重要となる。<br>
インスタンスの数が多いほど捌けるアクセス数が増えて性能が向上するがコストも増大するため、コストと性能のバランスを取り、インスタンスの数を調整することが望ましい。<br>
<br>
これに対応するため、負荷に応じてインスタンスの数を動的に変化させて、コストと性能のバランスを自動調整するサービスがEC2 Auto Scalingである。<br>
<br>
==== プレイスメントグループ ====
物理的距離の差により通信速度(RTT)が早くなる。 (往復距離に掛かる時間 (RTT: レイテンシ))<br>
同様にAWSにおいても、複数のインスタンスをグループ化してRTTが小さくなるよう配置することにより、同一AZ内のインスタンス同士の通信速度を向上させるプレイスメントグループと呼ばれる機能が存在する。<br>
<br>
プレイスメントグループでは、以下の3種類のグルーピング方法を選択することができ、<u>パーティション</u>と<u>スプレッド</u>は速度だけでなく耐障害性も向上させることができる。<br>
<br>
<center>
{| class="wikitable" | style="background-color:#fefefe;"
|-
! style="background-color:#66CCFF;" | 名称
! style="background-color:#66CCFF;" | 配置
! style="background-color:#66CCFF;" | 用途
|-
| クラスタ || グループ内のRTTが小さくなるようインスタンスを配置する。 || 速度重視<br>低RTT<br>高スループット
|-
| パーティション || インスタンスをパーティション単位で分けて、パーティション同士がラックと電源を共有しないよう配置する。 || 速度と耐障害性のバランス
|-
| スプレッド || 全てのインスタンスがラックと電源を共有しないよう配置する。 || 耐障害性重視
|}
</center>
<br>
プレイスメントグループにより、具体的にどの程度速度が向上するかは、以下に示すWebサイトで詳細に検証されている。<br>
(スプレッドは、耐障害性のみを向上させる方式に見えるが、速度も向上する)<br>
https://dev.classmethod.jp/articles/ec2-placement-group-strategy/<br>
<br>
<u>なお、プレイスメントグループには、以下に示す注意点が存在する。</u><br>
* 既存のインスタンスを後からプレイスメントグループに追加することはできない。<br>インスタンス起動時に追加が必要となる。
* 一部のインスタンスタイプはプレイスメントグループを適用できない。<br>例えば、デフォルトのT2インスタンスは適用できない。
<br>
==== SSHによるアクセス ====
Amazon EC2において、インスタンス内部を操作する場合に第1の選択肢となる接続手法である。<br>
なお、SSHを使用する場合は、セキュリティグループのファイアウォールにおいて、該当するポートを開ける必要がある。<br>
<br>
AWSにおいては、公開鍵認証にキーペアを使用してSSH接続する。<br>
<br>
キーペアとは、Amazon EC2インスタンスへの接続において、公開鍵認証に使用する鍵を指す。<br>
公開鍵をサーバ側で保持して、秘密鍵をクライアント側で保持することにより、公開鍵認証によるSSH接続を行う。<br>
<br>
<u>なお、一般的なオンプレで使用する公開鍵との違いがあることに注意する。</u><br>
* 一般的なオンプレではクライアント側で両鍵を生成するが、キーペアではサーバ側(AWS側)で鍵を生成する。
* 秘密鍵をAWSからのダウンロードする場合は、1度しかできない。<br>秘密鍵を紛失した場合は、キーペアの再生成が必要となる。
<br>
また、一般的なオンプレと同様、公開鍵と秘密鍵の特性から以下に示すことが成り立つ。<br>
* 秘密鍵を複数のクライアントで共有する事は避けるべきである。
* 公開鍵(インスタンス起動時に選択する鍵)を複数のインスタンスで共有することは構わない。
<br>
セキュリティグループとは、インスタンスをグルーピングしてIPアドレスとポート番号に基づくアクセス制限を設定することにより、ファイアウォールのようなアクセス制御を実現する機能である。<br>
セキュリティグループはVPC内部の機能のため、詳細を知りたい場合は、[[AWS - Amazon_EC2#VPC|AWS - Amazon_EC2#VPC]]のページを参照すること。<br>
<br><br>
<br><br>