大事だけど AWS 構成図では省略してしまうことが多いサービスについて

記事タイトルとURLをコピーする

コーヒーが好きな木谷映見です。

今回は小ネタです。AWS 構成図を書く際、省略してしまうことが多いサービスについて思いを馳せました。

よくある?構成図

よくあると思われる構成図を描いてみました。
AWS になじみがある方から見ると、

「ふむ、パブリックサブネットとプライベートサブネットに 1 台ずつ EC2 インスタンスがあって、プライベートサブネットのインスタンスにはセッションマネージャーでログインするのかな?S3 バケットもあるな」

くらいの想像ができるかもしれません。

リージョン

小規模なシステムの構成図だと、リージョンは省略されてしまうことが多いかもしれません。
個人的には、AWS Global Accelerator や Amazon Route 53 などグローバルなサービスを使うシステムの場合はリージョンも書きたくなってしまいます。

アベイラビリティゾーン

今回のラインナップの中では比較的描かれることも多いかもしれませんが、アベイラビリティゾーンも省略されてしまうことが多いです。

ルートテーブル

パブリックサブネットとプライベートサブネットが構成図に記載されている場合、「パブリックサブネットにはインターネット向けのルートが、プライベートサブネットには内部向けのルートが設定されているんだろうな」というのが想像できるので、ルートテーブルはほぼ省略されます。
私が AWS を学び始めて最初のころは、通信経路を理解するためにルートテーブルも頑張って書いていました。

AWS IAM

この人がいないと何もできないのに、省略されてしまうことが多いサービスナンバーワン、IAM です。描きたいけれど、どこに差し込んでよいのか分からず描けない、難儀な子です。
AWS は IAM に始まり IAM に終わります。
構成図を書くときは「裏で実はたくさんの IAM 関連サービスが頑張っているんだよな」と思いを馳せ、そしてどのように認証・認可しているのか想像してください。

以下、IAM についてのブログを参考までに貼っておきます。
「下の方の鍵のマーク、なんだ…?」と思われた方は、 AssumeRole について DiveDeep する - サーバーワークスエンジニアブログ を参照してみてください。

blog.serverworks.co.jp blog.serverworks.co.jp blog.serverworks.co.jp

インスタンスプロファイル

何者?とお思いの方もいらっしゃるかもしれませんが、EC2 が IAM ロールを引き受けるときに動作する「糊」のようなものです。

IAM ロールは直接 EC2 インスタンスにアタッチすることができません。

IAM ロールはインスタンスプロファイルを介して EC2 インスタンスにアタッチされます。

AWS マネジメントコンソールから EC2 用の IAM ロールを作成するとき、実は IAM ロールと同じ名前のインスタンスプロファイルが作成されています。
EC2 コンソールを使用して IAM ロールを EC2 インスタンスにアタッチするときも、実は IAM ロールではなくインスタンスプロファイルを選択しているのです。

Amazon EBS

この人もなかなか省略されてしまうサービスです。
EC2 のアイコンの中に含むようなイメージで省略されてしまう子ですね。

Elastic IP

こちらはおなじみの方も多い Elastic IP です。
ちゃんとアイコンとして存在するのに、構成図では描かれないことが多い子ですね。

Elastic network interface(ENI)

ENI は仮想ネットワークカードを表す VPC 内の論理ネットワーキングコンポーネントです。これも EC2 のアイコンの中に含むようなイメージで省略されていることが多いサービスです。
Interface 型のエンドポイントを記載する際など、時々明示的に描かれることもあります。

セキュリティグループ

セキュリティグループも構成図では省略されてしまうことが多いですね。
EC2 のアイコンにかぶせて書きましたが、セキュリティグループは ENI ごとに紐づいています。

セッションマネージャーする時のエンドポイント

プライベートサブネットの EC2 インスタンスにセッションマネージャーで接続する際、以下のように 3 つの interface 型エンドポイントを作成する必要があります。

  • com.amazonaws.[region].ssm
  • com.amazonaws.[region].ec2messages
  • com.amazonaws.[region].ssmmessages

また、セッションマネージャーで EC2 インスタンスに接続するためには EC2 インスタンスに SSM Agent がインストールされている必要があります。
この SSM Agent の更新や、プライベートサブネットのリソースが VPC 外の S3 バケットと通信するために必要な Gateway 型エンドポイントも作成すると、以下の図のようになります。

最終構成図

全部盛りの構成図は以下のようになりました。

終わりに

AWS 構成図では省略されてしまうサービスに思いを馳せてきました。
想像以上に反響いただきまして、「サービス名を省略されてしまうと分かりにくい」「レイヤーごとに分けて書くとよい」「運用管理系の構成図では通信経路も記載する」等、様々なご意見をいただきました。皆さま、誠にありがとうございます。

AWS の公式アイコンを利用する際はルールもございますので、以下のサイトから公式アイコンをダウンロードして使用する際は諸注意をよく読むようにしましょう。
aws.amazon.com

今後 AWS 構成図を見るとき「書いてないけど実は裏に色々なサービスがいるんだったよな」と思い出していただけますと幸いです。

emi kitani(執筆記事の一覧)

AS部LX課。2022/2入社、コーヒーとサウナが好きです。執筆活動に興味があります。AWS認定12冠。