第7回の宿題、実際に図を描いてみましたか? 「図を描くこと」は「設計の矛盾に気づくこと」でもあります。僕なりの回答例と、設計のポイントを解説します。
1. 【基本編】第6回コードの図解例
第6回で作ったリソースを整理すると、以下のような「入れ子構造」になります。
- 最外枠:サブスクリプション(お財布)
- 中枠:リソースグループ(管理の箱)
- 内枠:VNet(仮想ネットワーク)
- 最小枠:サブネット(区画)
図解のポイント: ユーザー(人のアイコン)から線を伸ばし、インターネットを介してVMに到達する流れが描けていれば正解です。枠線の色や太さを変えて「どこが境界線か」を明確にできましたか?

2. 【応用編】データベース(SQL Database)はどこに置く?
ここが設計の面白いところです。
※あくまで僕が思う正解ですので、現場の方の意見に沿って修正等加えてください!
Q1:データベースのアイコンはどこに置く?
回答のヒント: データベースはVM(サーバー)と通信するものですが、Azure SQL DatabaseのようなPaaS(サービスとして提供されるもの)の場合、「VNet(ネットワークの枠)の外」に描くのが一般的です。 もちろん、VNetの中からしかアクセスできないように制限をかけますが、図解としては「管理された別のサービス」として隣に並べることが多いです。
Q2:ユーザーからの線はどこに繋ぐ?
回答: ユーザーからの線は、データベースに直接繋いではいけません。 ユーザーが直接データベースを触れる状態は、セキュリティ上非常に危険です。必ず「ユーザー → VM(アプリ) → データベース」という順番で線が繋がるように描きます。
これが「意図のある設計」の第一歩です。

3. 最後に:設計図を描けるエンジニアへ
全7回の連載を通して、Azureの基礎からお財布事情、そしてTerraformによる自動化までを駆け抜けてきました。
インフラの世界は、コードを書くだけではありません。 「なぜこの構成なのか」を考え、それを「図」で表現し、周囲に伝える。この積み重ねが、エンジニアとしての確かな価値に繋がります。
この連載が、皆さんの素晴らしいエンジニアライフの最初の一歩を支える「設計図」になれば幸いです。最後までお付き合いいただき、本当にありがとうございました!


コメント