今日学んだこと#
個人プロジェクト(技術ブログのAWS移行)のアーキテクチャ図をdraw.ioで作成しました。
メンターレビューを通じて、「操作主体を明確にする」「分かりにくいフローは凡例で補足する」といった構成図作成のポイントを学びました。
学習内容#
なぜdraw.ioを選んだか#
最初はMermaidで構成図を書いていましたが、面接での説明を考えてdraw.ioに変更しました。
| 選択肢 | メリット | デメリット |
|---|---|---|
| Mermaid | コードで管理できる、GitHubで直接表示 | AWSアイコンが使えない、見た目が簡素 |
| draw.io | AWS公式アイコン、視覚的に分かりやすい | 画像ファイルとして管理 |
構成図を使った説明を求められる確率は高いため、AWS公式アイコンを使える
draw.io を選択しました。自分で配置を考えて書いた図なら、細部まで説明できます。
AWS公式アイコンの導入手順#
draw.ioでは「AWS 2025」のアイコンセットが使えます。
- draw.ioを開く(https://app.diagrams.net/)
- 左側パネルの「+ More Shapes」をクリック
- 「AWS」カテゴリから「AWS 2025」を選択
- 「Apply」で追加完了
これでS3、CloudFront、Route53などのAWSサービスアイコンが使えるようになります。
作成時に意識したポイント#
1. 対象者を意識する#
この構成図を見る人は誰か(面接官、自分)を考え、過度に詳細にせず、主要なコンポーネントと流れが分かるレベルに留めました。
2. 矢印を交差させない#
矢印が交差すると、どこからどこへの通信か分かりにくくなります。配置を工夫して交差を避けました。
3. 一貫した命名#
構成図内のラベルとTerraformのリソース名を一致させると、コードとの対応が取りやすくなります。
4. 凡例を追加する#
矢印の意味が自明でない場合は凡例で補足します。
今回は「データの流れ(実線)」「メトリクス/ログ(破線)」を左上に配置しました。
メンターからのフィードバック#
所属しているスクール(RareTECH)でメンターにレビューを依頼しました。
全体評価#
「とても綺麗」「このまま出しても違和感ない」
指摘された点#
CI/CDフローの矢印が分かりにくい
修正前は「IAM → S3」「IAM → CloudFront」という矢印を引いていました。これだと「IAMがS3を操作する」ように見えてしまいます。
実際の流れは以下の通りです。
- GitHub ActionsがIAMロールを引き受ける(OIDC認証)
- GitHub ActionsがS3にコンテンツを同期する
- GitHub ActionsがCloudFrontのキャッシュを無効化する
| コンポーネント | 役割 |
|---|---|
| GitHub Actions | 操作の実行主体(APIコールを行う) |
| IAM ロール | 認証・認可(権限付与) |
| S3 / CloudFront | 操作対象 |
IAMは「鍵」であって「操作者」ではないため、矢印の起点を修正する必要がありました。
修正内容#
| 修正項目 | 内容 |
|---|---|
| 矢印削除 | IAM → S3 / IAM → CloudFront |
| 矢印追加 | GitHub Actions → S3(コンテンツ同期) |
| 矢印追加 | GitHub Actions → CloudFront(キャッシュ無効化) |
| 凡例追加 | 「GitHub ActionsはIAMによるOIDC認証後、S3・CloudFrontを操作」 |
説明順序#
構成図を使って説明するときの順序は下記。
- メインフロー: ユーザー → Route53 → CloudFront → S3(コンテンツ配信の基本経路)
- CI/CD: GitHub Actions → IAM(OIDC)→ S3/CloudFront(デプロイの流れ)
- 監視: CloudWatch → SNS → メール通知(運用視点)
上から下、左から右に流れるように配置すると説明しやすくなります。
まとめ#
| 学んだこと | 詳細 |
|---|---|
| 操作主体を明確にする | 「IAMがS3を操作」ではなく「GitHub ActionsがS3を操作」 |
| 凡例で補足する | 分かりにくいフロー(CI/CD、認証)は説明文を追加 |
| レビューを依頼する | 自分では気づかない指摘をもらえる |
| 自分で書いた図は説明しやすい | 「なぜこの配置にしたか」を説明できる |