あらまし
いまさらながら AWS の勉強を始めたのですが、VPC と EC2 だけでも関連するリソースの種類が多くてなかなか理解ができなくて困りました。
例えばセキュリティグループとネットワーク ACL のように似ているようで性質が大きく異なるものや、何が何に従属して、1 対多なのか多対多なのか、といったリソースどうしの関係がなかなか頭に入らず、何度もマニュアルを見直したりしていました。
しかしよく考えたら、多数の要素どうしの複雑な関係に悩んだことは今まで何度もあって、データベースを解析する時には ER 図を、プログラムのソースを解析する時にはクラス図を作って理解してきたことを思い出しました。
そんなわけで、AWS の VP Cと EC2 および関連するリソースの関係を自分が理解するために、クラス図を作ってみました。
クラス図
作図には PlantUML を使用しました。
多重度の上限値に関しては、とりあえず *
とか 1..*
のように上限なしで記述しました。
以下のようにクラス図の一部に注目すると、リソースどうしの関連が分かりやすくなります。
- 1 つの VPC にインターネットゲートウェイは1つだけ
- 1 つのサブネットにルートテーブルは 1 つだけ
- 1 つのルートテーブルは複数のサブネットに設定できる
- 1 つのインターネットゲートウェイは複数のサブネットに設定できる
- 1 つのサブネットにネットワーク ACL は 1 つだけ
- 1 つのネットワーク ACL は複数のサブネットに設定できる
あとがき
勉強しながら作っているので理解不足の点が多々あると思いますが、今後理解を進めながら図の完成度を上げていきたいと思います。