infra.newとは

https://infra.new/

「infra.new」は、まるで「bolt.new」のインフラ版とも言える、革新的なクラウドインフラ自動構築ツールです!
このツールは、自然言語(プロンプト)を入力するだけで、Terraformのコードを自動生成し、さらには指定したクラウド環境へのデプロイまでを一気通貫で行うことができます!

クラウドインフラのコード化(IaC: Infrastructure as Code)や、そのデプロイ作業を、より直感的かつ効率的に行いたいと考えている開発者にとって、注目のツールと言えるでしょう!

なお開発元は、LaunchFlow社というアメリカのスタートアップ企業です。

できること

infra.newの主な機能を以下にまとめます!

  • Terraformコードの自動生成:
    • ユーザーがチャット形式で入力した要件(例: 「冗長化されたWebサーバーとデータベースをAWSに構築したい」)に基づいて、TerraformのHCL(HashiCorp Configuration Language)コードを自動で生成します
  • クラウド環境へのデプロイ:
    • 生成されたTerraformコードを使って、AWSやGoogle Cloudといった主要なクラウドプラットフォームへインフラを直接デプロイできます(Azureへのデプロイは現時点では一部未対応の可能性があります)
    • デプロイプロセスは、terraform init/plan/apply といった標準的なコマンドフローに沿って実行されます
  • コードのエクスポートとGitHub連携:
    • 生成されたTerraformコードは、ローカル環境にエクスポートして自由に編集・管理できます
    • GitHubとの連携機能が具備されており、infra.newで作成したコードをGitHubにPushすることが可能です
  • 便利な補助機能:
    • 日本語対応: UIやプロンプト入力は日本語に対応しており、日本のユーザーにも使いやすくなっています(たまに英語が混じったりと若干不完全である印象はありました)
    • マルチモーダル入力 自然言語だけでなく、画像やPDFファイルなども入力形式としてサポートされています
    • 利用料金計算機能: 構成するAWSリソースなどの月額ランニングコストを試算し、リアルタイムで表示してくれます
    • ダイアグラム(構成図)作成機能: 生成されるインフラの構成図を自動で作成してくれます(ただし、まだ実用的なレベルではない感触です)

利用料金

infra.newの現在の料金プランは以下の通りです。

プラン 価格 対象 主な特徴
Free $0 / 月 個人利用者向け – 1M トークン / 月
– 2 ランナー時間 / 月
– 2 設定可能ランナー
– コード生成のカスタマイズ
– Terraformグラフの可視化
– 無制限のコスト計算
Pro $20 $9 / 月 より多くのメッセージ上限が必要な方向け – 10M トークン / 月
– 50 ランナー時間 / 月
– 10 設定可能ランナー
– GitHub統合
– プライベートテンプレート + モジュール
Team $35 $24 / 月 チームでの共同作業向け – ユーザーあたり 15M トークン / 月
– 100 ランナー時間 / 月
– 無制限ランナー
– プライベートTerraformレジストリ
– カスタムポリシー適用
– 専用Slackサポート
Enterprise カスタム価格 カスタム統合が必要な企業向け – 無制限トークン
– セルフホストエージェント
– infra.new APIへのアクセス
– カスタム / ファインチューニングモデル
– 新機能への早期アクセス

現在はearly adopter priceということでProとTeamプランが割安になっていますね。

Freeプランという形で無料枠も設けられていますが、トークン数や利用できる機能を見ても「theお試し」感は否めません。
ProとTeamプランはクォーターと利用できる機能に若干の差異がありますね。

Enterpriseはトークンが無制限で全ての機能が利用できるような形ですが料金が明記されていないので、$50ドル以上はしそうだなと勝手ながら思いました。

実際に触ってみた

まずはトップページにアクセスします。

右上の「Sign up」からアカウント登録します。
Googleアカウントを持っていたらすぐに登録することができます。

登録後に再度トップページに戻ります。
トップページを下にスクロールすると、料金プランがあります。

私はこのままFreeプランで操作を継続してきます。
トップページの入力画面の左下に残トークン数が表示される仕様になっています。

それでは入力画面から、生成したいインフラ要件を入力していきます。
以下の内容を入力します。

AWS上に、簡単なWebサイトを構築したいと考えています。
コンピューティングリソースとしてはEC2を利用します。ミドルウェアとしてApacheを利用してください。
データベースには、RDS PostgreSQLを利用します。
コンテンツデリバリーネットワーク(CDN)は不要です。
可用性については、アベイラビリティゾーン(AZ)障害が発生した場合でも、システムが継続して稼働できるように、AZ冗長構成としてください。

入力後に、画面が切り替わりエディターとチャット画面が展開されます。

最初、ファイルはREADME.mdだけ作成されている状態です。
そしてチャット画面を見ると、入力内容を踏まえて利用(作成)するTerraformモジュールが表示されています。

今回は

  • VPCモジュール
  • セキュリティグループモジュール
  • ALBモジュール
  • EC2モジュール
  • RDSモジュール

を利用します。

VPCモジュールのウィンドウを展開すると、モジュールの取得元(Public or Custom)や、モジュールのパラメータ(Requirementsという名前の自然言語形式で)を指定できるようです。

どうやらTerraformのコードはモジュールを利用して記述することが前提になっているようです。

今回は提案の内容をそのまま承諾することにして、「Run All Steps」をクリックします。

VPCモジュールを利用したネットワークのコード作成が行われました。
どうやらモジュール単位でコード生成のステップとなっており、そしてステップ毎にユーザーの承認を求めるようです。

ステップの分割単位が明確で、そして都度承認を差し込むことで、どのようなコード生成が作成されているか分かり易いです。
またチャット画面に作成されたファイルが表示されているので、どのファイルが作成されたかも一目瞭然です。
「Continue with this step」で次のステップが始まります。

では、この要領で全てのステップを実行します。

全てのステップが完了しました。
チャットに全てのステップのサマリーが表示されます。

Costsのタブを開くと、Terraformコードの内容から月毎のAWS利用料金の試算が表示されています。
これは便利ですね。

Graphタブを開くと、ダイアグラムが表示されます。

ただ、あくまで登場するリソースくらいの情報しかわからない内容なので、通信のフローやVPCの構造を考慮されているようなダイアグラムは描写できないようです。

作成されたコードを少し編集してみます。
右のエディターはどうやら直接編集できるようです。(19行目にコメントアウトを入れました)

チャット画面からCIDRを変更してもらうようにしました。
すると対象ファイルが編集されていることが確認できました。(編集というよりは、上書きのような挙動でした)

それではこれをデプロイしようと思います。
画面右上の「Deploy」をクリックします。

「Configure Runners」をクリックします。
Runnerという形で各IaaSへの権限情報を登録できます。Deployする際に利用されるのでしょう。
今回はAWSのアクセスキーとシークレットアクセスキーを入力しました。 

再び戻り、「Deploy」をクリックします。

デプロイもコード生成と同じようにステップが分かれているようです。
実行するterraformコマンドなども明記されています。実行コマンドの調整もできそうです。
「Run All Steps」をクリックします。

やはりコマンド実行の前に承認を差し込んでくれます。
「Confirm」をクリックします。

terraform-validateで失敗してしまいました。
必要な記述が足りてないとのことです。「Debug this error」をクリックして、デバッグしてもらいます。

問題を修正してくれたようなので、再度コマンド実行を承認します。

また違うところで、terraform validateが失敗しているようです。
再度修正してもらい、継続します。

terraform planの結果が右下のターミナルに表示されています。

次はapplyにてエラーが発生しました。
Postgreのバージョンがおかしいようです。

どうやらapplyが失敗するたびに、destroyして更地にしてから再度apply実行するという仕様のようです。
ゴミリソースが残ったりしないので、一度まっさらにしてからやり直した方がいいという思想ですかね。

この要領でapply失敗->エラー修正->apply再実行を繰り返しました。
結局、applyは最後まで成功しませんでした。

もう少し粘れたのですが、残トークン的にこれ以上はきついかなと思って諦めました。

CursorでTerraformコードを生成したことが何回かありましたが、やはりterraform applyが通るレベルのコードを生成するのは難しいようですね。
ある程度慣れて、勘所がつかめたらapply成功まで行けるような気もします。

所感

最後に利用した所感を述べたいと思います!

  • UI/UXはbolt.newそのまんま(どうやらboltをforkして作られているようなので、そりゃそうだなと)
  • モジュール毎に分割してコード生成と実装ステップを分けてくれるので、何が行われているか把握しやすい
  • applyが鬼門(入力を工夫したり、LLMの性能が上がらない限りはapplyエラーの解決にかなりのトークンを消費してしまうと思いました)

以上です。ぜひ無料で試せるので、ぜひ皆さんもお試しください!