セキュリティーグループとは、使用するポートのグループを定義したもので、EC2インスタンス(サーバ)に紐づけることでEC2インスタンスへのアクセス制限を制限できるようになります。
セキュリティーグループの全く付いていないEC2インスタンスは外部からのアクセスをまったく受け付けない孤立した状態にあります。このサーバにWebサイトにアクセスするためのポートである80番や443番ポートのアクセスを受け付けるセキュリティーグループを追加することで、ブラウザはWebサーバにアクセスすることができ、サーバはブラウザにページのデータを渡すことができます。
セキュリティーグループ作成時のコツ
まず初めに、デフォルトのセキュリティーグループがある場合は、名前を付けておきましょう。「system default」や「システムデフォルト」などとしておくとよいでしょう。しかし、このデフォルトのセキュリティーグループは全てのポートからのアクセスを許可するものなので、セキュリティー使用するのは望ましくありません。なので、このデフォルトのセキュリティーグループを使用することはまずないでしょう。
次に、セキュリティーグループ名とそのセキュリティーグループ内に定義するポート番号は1対1を基本としておきましょう。1つのセキュリティーグループ内に複数のポート番号を指定することは可能ですが、複数の許可するポートを詰め込んだセキュリティーグループを使いまわすのは望ましくありません。特定のサーバ上では使用しないポートからのアクセスを許可するべきではありません。原則として、必要なポートだけ許可する為にこの1対1の関係性にとどめておきましょう。
例外としてはWebサイトで使われる80番ポートと443ポートはほぼ不可分で使用されることが多いので、この2つのポートは1つグループにまとめてよいと思います。
代表的なセキュリティーグループとポート番号
以下のセキュリティーグループではすべてインバウンドルールの設定を行います。
- ssh
-
デフォルトの 22 番ポートを指定。
SSH接続でEC2インスタンスに接続する際に使用します。 - www
-
デフォルトの 80 番ポートと 443 番ポートを指定。
80 番ポートはHTTPプロトコルに使われ、443 番ポートはHTTPSプロトコルに使われます。
ブラウザのURL欄にgritbeaver.comと入力した場合は、http://gritbeaver.com:80と入力したみなされ、通常はその後https://gritbeaver.com:443ポートに転送されます。80 番ポートと443 番ポートはWebブラウザの既定の通信ポートなので通常は省略されるため、URLにこれらの数字を見ることはないでしょう。 - efs.ec2
-
ルールの追加は不要です。
別記事で扱いますが、EFSストレージをEC2インスタンスにマウントする際にEC2インスタンスに使用します。
- efs.network
-
NFS タイプを選択すると TCP の 2049 番ポートが選択されます。ソースは Custom に指定し、前述の efs.ec2 のセキュリティーグループのIDを指定して下さい(sg-*****)。
これも上記同様に別記事で扱いますが、EFSストレージをEC2インスタンスにマウントする際に、EFSストレージ側の設定に使用します。
- elb.www
-
www同様にHTTP(80 番ポート)とHTTPS(443 番ポート)を指定してください。
負荷分散に使用するElastic Load Balancer に紐づけます。WebサーバのEC2インスタンスに紐づける www セキュリティーグループとはまた使用目的が異なるので、www は流用せず別途ELB様に作成しておきましょう。
- mariadb.installed
-
MariaDBがインストールされているEC2インスタンスに設定します。
MySQL/Aurora タイプを選択すると TCP の 3306 番ポートが選択されます。ソースは Anwhere-IPv4 に設定し、値が 0.0.0.0/0 になるように設定してください。 - neo4j
-
Neo4jがインストールされているEC2インスタンスに設定します。以下3つをインバウンドルールに設定します。
カスタムTCP、ポート番号 7687 ソース 0.0.0.0/0 ・・・DBと通信する際のboltプロトコル用
カスタムTCP、ポート番号 7474 ソース 0.0.0.0/0 ・・・HTTPプロトコル用
カスタムTCP、ポート番号 7473 ソース 0.0.0.0/0 ・・・HTTPSプロトコル用
EC2インスタンス用のefs.ec2セキュリティーグループとEFSストレージ用のefs.networkセキュリティーグループの使いかの他詳細については以下の「AWSのEFSストーレージを作成して、EC2インスタンスにマウントしよう」の記事を参考にしてください。

ソースに 0.0.0.0/0 と指定した場合は、どこからでもアクセスできる状態なので、本番環境ではアクセスするサーバは制限する必要があります。
EC2インスタンスにセキュリティーグループを紐づける方法
作成したセキュリティーグループはEC2インスタンス作成時に紐づけするか、既存のEC2インスタンスに追加することもできます。追加する場合は、インスタンスリストの対象インスタンス上で右クリック>「セキュリティー」>「セキュリティーグループを変更」のメニューから追加できます。
まとめ
本日の学習では、EC2のセキュリティーグループについて学習しました。セキュリティーグループはサーバへのアクセス制限のために設定するものでしたね。グループとポート番号を1対1で設定するのが原則でした。また、最も代表的なセキュリティーグループには ssh、wwwなどがありましたね。今回作成したセキュリティーグループは、EC2インスタンスを作成する際に紐づけていくことになりますので、覚えておきましょう。
次回は「AWSで使用するストレージサービス3選」について学習していきましょう。
コメント