Application Design Center というサービスが誕生しました。
聞いた話によると、デザインした構成図から Terraform コードを生成してくれるとかなんとか…。
インフラエンジニアとして、日々 Terraform コードを書いている私からしたら非常に気になるサービスです。
今回は、サービスの解説と実際に使ってみた感想を記載していきたいと思います。

なお、本サービスは現段階でプレビューリリースとなっています。

Application Design Center

本サービスは Google Cloud のインフラストラクチャの設計、共有、デプロイを支援するプラットフォームです。
簡単な操作で直感的にアプリケーションの構成図をデザインし、その内容から Terraform コードを自動生成してくれるだけでなく、ボタン一つで実際のインフラストラクチャの構築まで行えることが魅力です。
構成図は複数のメンバーの同時編集にも対応しており、コメントを残すこともできるためレビューなども行いやすいなど、コラボレーション機能が豊富な点がメリットとなっています。
また、作成した構成図をテンプレートとして保存し、スペース内や別プロジェクトへ共有するといったことも可能です。

現状、サポートされているサービスは以下です。
サービス数としてはまだそこまで多くないものの、Webアプリで構築する主要なサービスは揃っているため、十分有用に感じますね。

  • Compute Engine
  • Compute Engine (MIG)
  • Secret Manager
  • Service account
  • Cloud Run
  • Cloud Storage
  • Cloud SQL (MySQL、PostgreSQL)
  • Memorystore for Redis
  • Cloud Load Balancing (フロントエンド、バックエンド)
  • Vertex AI

セットアップ

まずは、「set up ADC」をクリックしてスペースを作成します。
このスペース単位でユーザーを招待することで先程触れた共同編集が可能になります。
また、必要な API が有効になっていない場合はここで有効化されます。

スペースが作成されると、メニュー左上で対象スペースが選択されます。
他スペースへの切り替えもここから行えるようですね。

テンプレート作成

テンプレートは自分で作ることもできますが、Google 側で用意されたものもあります。
Google 側で用意されたものは、3 層 Web アプリと Cloud SQL を使用した生成 AI RAG という 2 つがあります。

これらのテンプレートでも十分な構成になっていますが、今回は自分で実際にテンプレートを作成してみます。
「Create Template」をクリックし、以下の画面に従って入力していきます。

Attributes の項目では、構築する環境やその重要度を以下の中から選択できます。

  • 環境:PRODUCTION、STAGING、DEVLOPMENT、TEST
  • 重要度:HIGH、MEDIUM、LOW

また、Business Owners、Developer Owners、Operator Owners にて、担当者のメールアドレスを設定できました。
何か通知を受け取ることができるのでしょうか。試しに全て自分のメールアドレスを入力してみます。

構成図作成

次に、構成図をデザインする画面が表示されます。
左からコンポーネントを追加し、各コンポーネントの設定を行います。
今回は以下のような構成を作成してみました。

コンポーネント同士の接続設定などは、図上で線を繋げるだけで自動的に行ってくれるようです。
ただし、LB に Cloud Storage をぶら下げられなかったり、対応しているリージョンが少なかったりと、まだ自由度はそこまで高くないように感じました。
これからのアップデートに期待したいところですね。

Terraform コードの生成

先程の構成図のデザインする画面の右上にある「コードを取得」から、Terrafrom コードをダウンロードすることができます。

ダウンロードすると zip 形式で保存され、その中に以下のファイルが格納されていました。
それぞれのファイルは以下のような役割となっています。

ファイル名 役割
main.tf 各コンポーネントのモジュールの呼び出し
outputs.tf 各コンポーネントに関する情報の公開
input.tfvars main.tf 内で使用される変数の値の定義
variables.tf main.tf 内で使用される変数の名前や型の宣言
providers.tf Google Cloud プロバイダの設定情報

アプリケーションのデプロイ

先程ダウンロードした Terraform コードを apply しても良いですが、今回はコンソールから実施してみます。
右上にある「Configure an app」から進めると、各コンポーネントのデプロイに必要な権限を備えたサービスアカウントの作成、および API の有効化が求められます。
一々手動で行う必要はなく、画面に従って進めていけば自動的に準備してくれます。

また、ここで Terraform の plan 結果を確認できます。
プレビューをクリックすると数分後に表示され、エラーが出るとデプロイもできません。

デプロイが完了すると、以下の画面が表示されます。
「View app in App Hub」という誘導がある通り、各コンポーネントは App Hub のアプリケーションとして管理されます。

なお、これまでの工程の中で、登録したメールアドレスへの通知はありませんでした。
あくまでカタログの管理者を明確にするという目的で設定できるもののようです。

おわりに

Application Design Center という新サービスについて解説し、実際に触ってみた内容を紹介しました。
直感的な構成図のデザインから Terraform コードの生成、デプロイまでを容易に行える点は、特にクラウド初心者にとっては、インフラ構築のハードルを下げ、開発への集中を促す便利なツールだと感じました。
一方で、より複雑な構成や Terraform コードのカスタマイズを求める上級者にとっては、機能面で物足りなさを感じる部分があるようにも思いました。
また、個人的には、東京リージョンへ対応していないことが現時点での最大の課題に感じましたので、今後のアップデートに注目していきたいと思います!

参考:
Application Design Center overview