プレイスメントグループを試してみる

## プレイスメントグループとは？

インスタンス間の通信速度を高速化させる機能で、
インスタンスをグループ化し、物理的に近い距離に配置するします

### プレイスメントグループの種類

- クラスタプレイスメントグループ

単一AZ内のインスタンスをグループ化したもので、
複数のAZにまたがることはできません。
EC2間で高ネットワークスループットが発生する場合に適しています

- パーティションプレイスメントグループ

論理的なパーティションに分散されているグループで
複数のAZに分散させることが可能です
HDFSなど大規模なワークロードに適しています

- スプレッドプレイスメントグループ

異なるハードウェアに配置されるグループで
複数のAZにまたがることが可能です
EC2がお互いに分離して保持される必要があるアプリケーションに適しています

## クラスタプレイスメントグループ を試す

- 構成

![12021-04-14 # プレイスメントグループを試してみる - diagrams.net - Go.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/507e22d2-7146-4930-9946-34c8890dcb2d.png)


- EC2の作成

※EC2の基本的な作成方法は [こちら](https://qiita.com/miyuki_samitani/items/61e1548cb61f4053e78d) を確認ください

インスタンスタイプはm4.largeにしました。
ある程度大きいほうがいいかなと。
変更した箇所は以下のプレイスメントグループの設定です

![1プレイスメントグループインスタンスウィザードを起動 _ EC2 Management Console - Google C.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/0e760aa5-8ae8-acd0-966d-c7b1792eb9a3.png)


- プレイスメントグループの設定を確認

EC2 > プレイスメントグループ で作成したプレイスメントグループを確認することが出来ます。

![1プレイスメントグループ _ EC2 Management Console - Google Chro.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/360fb0de-f438-747a-ff4a-3b0f02719847.png)


- 疎通確認

cluster1からcluster2に疎通確認をしました。

```
[root@ip-XXX-XXX-XXX-XXX ~]# ping XXX.XXX.XXX.XXX
PING XXX.XXX.XXX.XXX (XXX.XXX.XXX.XXX) 56(84) bytes of data.
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=1 ttl=255 time=0.124 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=2 ttl=255 time=0.119 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=3 ttl=255 time=0.129 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=4 ttl=255 time=0.132 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=5 ttl=255 time=0.131 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=6 ttl=255 time=0.130 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=7 ttl=255 time=0.123 ms
```

## パーティションプレイスメントグループ を試す

- 構成

先ほどとほぼ同様でプレイスメントグループ化したサーバを2つ用意しておき、
片方へpingを飛ばします。

![22021-04-14 # プレイスメントグループを試してみる - diagrams.net - Go.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/b9f5cb08-a10c-7179-63d5-5898e0c2d19d.png)


- EC2の作成

※EC2の基本的な作成方法は [こちら](https://qiita.com/miyuki_samitani/items/61e1548cb61f4053e78d) を確認ください

先程同様インスタンスタイプはm4.largeになります。
変更した箇所は以下です。

![2021-04-141インスタンスウィザードを起動 _ EC2 Management Console - Google C.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/d8b85a9c-5094-2dd1-7c59-bdb9b1202673.png)


- プレイスメントグループの設定を確認

EC2と同時にプレイスメントグループも作成されました

![2プレイスメントグループ _ EC2 Management Console - Google Chro.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/90dc8800-9e02-a7f5-6ee7-1ab4f23112ff.png)


- 疎通確認

```
[root@ip-XXX.XXX.XXX.XXX ~]# ping XXX.XXX.XXX.XXX
PING XXX.XXX.XXX.XXX (XXX.XXX.XXX.XXX) 56(84) bytes of data.
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=1 ttl=255 time=0.129 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=2 ttl=255 time=0.142 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=3 ttl=255 time=0.140 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=4 ttl=255 time=0.143 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=5 ttl=255 time=0.131 ms
```

## スプレッドプレイスメントグループ を試す

- 構成

構成特に変わらず、スプレッドプレイスメントグループ化したEC2の片方からpingを飛ばします

32021-04-14 # プレイスメントグループを試してみる - diagrams.net - Go

- EC2の作成

※EC2の基本的な作成方法は [こちら](https://qiita.com/miyuki_samitani/items/61e1548cb61f4053e78d) を確認ください

変更したのは以下の箇所です。

2021-04-142インスタンスウィザードを起動 _ EC2 Management Console - Google C

- プレイスメントグループの設定を確認

spredのプレイスメントグループが作成されています。

3プレイスメントグループ _ EC2 Management Console - Google Chro

- 疎通確認

```
[root@ip-XXX.XXX.XXX.XXX ~]# ping XXX.XXX.XXX.XXX
PING XXX.XXX.XXX.XXX (XXX.XXX.XXX.XXX) 56(84) bytes of data.
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=1 ttl=255 time=0.018 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=2 ttl=255 time=0.028 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=3 ttl=255 time=0.029 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=4 ttl=255 time=0.029 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=5 ttl=255 time=0.027 ms
```

## ちなみにプレイスメントグループをしていない普通のインスタンスの場合

確かにプレイスメントグループ化してるインスタンスのほうがはやいです

```
[root@ip-XXX.XXX.XXX.XXX ~]# ping XXX.XXX.XXX.XXX
PING XXX.XXX.XXX.XXX (XXX.XXX.XXX.XXX) 56(84) bytes of data.
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=1 ttl=255 time=0.192 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=2 ttl=255 time=0.196 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=3 ttl=255 time=0.185 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=4 ttl=255 time=0.183 ms
64 bytes from XXX.XXX.XXX.XXX: icmp_seq=5 ttl=255 time=0.187 ms
```