Infrastructure Composer インフラ構成を視覚的に見る🔎

## はじめに

インフラ構成に変更があった際、変更前後の差分を<b>もっと視覚的に確かめたい</b>なんて時あると思います。

まさに先日、CDKコードの修正を行った自分がそんな状況でした。

それまでは、スタック内容の確認は`npx synth`、差分確認は`cdk diff`しか知らなかったのですが、スタック内容を見る際になんかコードベースでわかりづらいし、確認したとしてもリソース間の繋がりが見えづらくて若干不安が残ります。

ということで、<b>Infrastructure Composer</b> 今回初めて使ってみました。

## 目次

1. [Infrastructure Composerとは？](#-infrastructure-composerとは)
2. [Infrastructure Composerの主な特徴](#-infrastructure-composerの主な特徴)
3. [実際に使ってみた](#-実際に使ってみた)
4. [代表的なInfrastructure Composerツール](#-代表的なinfrastructure-composerツール)
5. [まとめ](#-まとめ)
6. [参考文献🌟](#参考文献)

## 🧷 Infrastructure Composerとは？
Infrastructure Composer は、クラウドやオンプレミス環境のインフラ設計を視覚的に行い、自動化 するためのツールや機能を指します。

具体的には、ネットワーク・サーバー・ストレージ・データベースなどをGUIベースで設計し、それを Infrastructure as Code（IaC）として適用、可視化できます。

<b>こんな課題を解決できる！</b>

✅ インフラ設計を視覚的に整理したい → GUIでドラッグ＆ドロップ操作が可能
✅ インフラの構成管理を自動化したい → IaCと連携して構成の一貫性を確保
✅ クラウドコストを最適化したい → コスト試算やベストプラクティスに基づく提案が可能

## 🧷 Infrastructure Composerの主な特徴
### ① インフラの可視化・設計
GUI（グラフィカル・ユーザー・インターフェース）を使って、インフラの構成を視覚的に設計できます。

TerraformやCloudFormationを直接書く必要がなく、ドラッグ＆ドロップで構成を組めるのが大きなメリットです。

### ② インフラの自動化（IaCとの統合）
設計したインフラ構成を、Terraform・CloudFormation・Pulumi などの IaC（Infrastructure as Code） にエクスポートし、そのまま適用できます。

#### メリット
* コード管理が容易 → GUIで設計したものをIaCとしてバージョン管理できる
* 再利用可能 → 同じ構成を複数の環境（開発・本番など）で適用できる
* 手作業を削減 → 一貫したインフラ構成を自動で適用

### ③ クラウドプロバイダーとの統合
AWS、Azure、Google Cloud などの主要クラウドサービスと統合されており、各プロバイダーのベストプラクティスに沿った設計が可能です。

<b>例えば…</b>
* AWS Application Composer → AWS上でサーバーレスアプリケーションを設計
* Google Cloud Deployment Manager → GCPのリソースをコードで管理・デプロイ

さらに、ハイブリッドクラウド・マルチクラウド環境にも対応し、異なるクラウド間の構成管理も一元化できます。

### ④ コスト最適化・セキュリティ強化
Infrastructure Composer は、リアルタイムでクラウドコストの見積もりを行い、最適なリソース配置を提案できます。

また、セキュリティやコンプライアンスのポリシー適用にも対応し、規制に準拠した環境を構築可能です。

<b>例えば…</b>
* コスト試算機能 → 事前にインフラのコストを把握し、予算内で設計
* セキュリティスキャン → ベストプラクティスに沿ったリソース設計をアドバイス

## 🧷 実際に使ってみた
自分の場合はあくまでCloudFormationスタックの変更があり、変更前後の差分確認のために少し使ってみた程度です。
（都合上、マスク部分多いですがご了承ください..）

#### 変更前のインフラ構成図の確認
* CloudFormationで変更前の該当スタックを選択

![スクリーンショット 2025-03-11 15.42.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3427082/ce194d45-dfce-4109-bcc2-ca8bd850ca79.png)

* `テンプレート` > `Infrastructure Composerで表示`を選択でキャンパスを表示する

![スクリーンショット 2025-03-11 15.52.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3427082/abfd2d12-5448-4cb2-a96f-cbb7846f18b7.png)

#### 変更後のインフラ構成図の確認
* ローカル環境にて`npx synth { スタック名 }`で CloudFormation のテンプレートを用意する
    * npx synth：CDKコードを CloudFormationのテンプレートに変換する
    * cdk.out には、`npx synth`の変換結果が格納されるディレクトリ(自動生成)
* CloudFormation > `変更セット` > `変更セットを作成`を選択

![スクリーンショット 2025-03-11 15.44.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3427082/c0ec80f4-9547-41ca-aaca-284880ee4571.png)

* `Infrastructure Composer で編集`を選択

![スクリーンショット 2025-03-11 15.46.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3427082/90cd43b1-f2e4-4019-9258-cb7346d0271f.png)

* `テンプレート`へ`cdk.out`にある該当スタックのテンプレート内容を貼り付ける
　⇨ <b>キャンパス表示にして、変更前のインフラ構成図と視覚的に比較できる！</b>
　⇨ リソース間の繋がりが一目瞭然なほか、各リソースのプロパティも見れる

![スクリーンショット 2025-03-11 15.49.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3427082/058324b7-14f2-4cec-8db5-7f813fc02783.png)

## 🧷 代表的なInfrastructure Composerツール
| ツール名 | 概要 |
|:-----------|:------------|
| AWS Application Composer | AWSの サーバーレスアプリ をGUIで設計 |
| Google Cloud Deployment Manager | GCPの IaCツール。コードでリソース管理 |
| Terraform Cloud | Terraformを GUIで管理・適用 できる |
| Cisco DNA Center | オンプレミス向け。ネットワークインフラを可視化・自動化 |

## 🧷 まとめ
Infrastructure Composer を使うことで、インフラ設計を視覚的・効率的 に管理でき、IaCを活用した自動化が可能になります。

✅ インフラの可視化 → GUIで設計できる
✅ IaCとの連携 → TerraformやCloudFormationにエクスポート
✅ クラウドプロバイダーと統合 → AWS、Azure、GCPに対応
✅ コスト＆セキュリティ最適化 → 自動試算やベストプラクティスチェック

これからインフラの自動化・最適化 を進めたい方は、ぜひ Infrastructure Composer をチェックしてみてください！

## 参考文献🌟
* [最新のアプリケーションを視覚的に作成する](https://aws.amazon.com/jp/infrastructure-composer/)
* [AWS Infrastructure Composer の機能](https://aws.amazon.com/jp/infrastructure-composer/features/)