2020年7月のアップデートで、ユーザー指定のプレフィックスリストがサポートされました。
今回はこのプレフィックスリストを利用して、セキュリティグループやルートテーブルの設定をより簡単にする方法を紹介します。

プレフィックスリストとは

まず、プレフィックスリストについて簡単に説明すると、複数のサブネット、IPアドレスを集約してリスト化したものになります。
従来、このプレフィックスリストはAWS公式のもの(参考画像1)が利用できましたが、今回のアップデートでユーザー自身でこのプレフィックスリストを作成して、セキュリティグループやルートテーブルの設定に利用できるようになりました。

参考画像1: AWS公式プレフィックスリスト(S3)

それでは実際にプレフィックスリストを利用して、今回はセキュリティグループの設定を行ってみたいと思います。

プレフィックスリストを利用したセキュリティグループの設定

まず、プレフィックスリストを作成します

細かい手順は、公式のドキュメントにお任せしますが、実際に作成したプレフィックスリストが下の画像になります。
user-prefixlist
注目して欲しいのは下側にある「プレフィックスのエントリ」です。
詳細はマスキングしていますが、AWS公式のプレフィックスと同様に/24などで定義されたサブネットが並んでいます。

なお、プレフィックスリストを作成する時に1点だけ注意したいことがあります。
プレフィックスリストを作成する際に最大エントリ数を指定しますが、これは後から変更することができません。
このため、将来エントリが増えるようなことが考えられる場合、最大エントリ数は余裕を持って指定するようにしてください。

プレフィックスリストをセキュリティグループに設定します

作成したプレフィックスリストをセキュリティグループに設定します。
下の画像は、作成したプレフィックスリストからのHTTPアクセスを許可する設定をしたセキュリティグループになります。
prefixlist-sg
そして、ここでも1点注意があります。
セキュリティグループ(ルートテーブルもそうですが)には設定可能なルール数の上限があるのですが、1プレフィックスリスト = 1ルールとはならず、プレフィックスリストのエントリ数がそのまま設定されたルール数となります。
つまり、10エントリあるプレフィックスリストをセキュリティグループに設定すると、10ルール追加するのと同じことになります。
セキュリティグループのルール数上限を超えるような場合は、AWSに上限緩和申請を出すのを忘れないでください。

まとめ

一部、注意が必要なところはありますが、多量のサブネットを複数のセキュリティグループやルートテーブルに設定しなければならない場合、プレフィックスリストを作るだけで簡単に追加・管理していけるかと思います。
プレフィックスリストの利用には追加料金も発生しないため、積極的に活用をしてシンプルな運用を目指していきたいと思います。