0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

BackstageをGCEで起動してIAP SSHポートフォワード経由でアクセスする構成メモ

Last updated at Posted at 2025-04-20

Backstage の勉強をするにあたって Google Cloud 上で起動してみることにしました。
https://backstage.io/docs/getting-started/

料金をなるべく抑えつつ、サーバーに入ってファイル覗いたりもしたいので、GKE (Google Kubernetes Engine) や Cloud Run ではなく GCE (Google Compute Engine) を使い、ローカル端末から IAP (Identity-Aware Proxy) を使ってアクセスします。

忘れそうなので、最初の接続までだけですが、ざっくりメモしておきます。

※ 当初は IAP の TCP 転送(gcloud compute start-iap-tunnel)で接続しようとしましたが、うまく動作しなかったため SSH ポートフォワードに変更しました。

Backstage を GCE で起動して IAP 経由でアクセスするまで

1. ローカル端末準備

最後に Backstage にアクセスするための、gcloud CLI を実行できてブラウザを利用できる環境を用意。

※ 最初 Cloud Shell でできないかと思ったが上手くいかず。

2. Google Cloud Project 用意

後で掃除しやすいように新しいプロジェクトを用意。
Compute Engine API, IAP API あたりを有効化した気がする。

3. Google Cloud 作業ユーザー権限付与

  • Editor
    • 各種設定作業用
  • Compute インスタンス管理者(v1)(roles/compute.instanceAdmin.v1)
    • IAP で SSH アクセスするのに必要
  • IAP で保護されたトンネル ユーザー(roles/iap.tunnelResourceAccessor)
    • 同上

4. VPC 作成

適当に VPC とサブネットを作成。

5. Google Compute Engine インスタンス作成

  • Debian
  • ネットワークタグ設定
    • 後でファイアウォールルールで使用するため適当に設定
  • 外部 IP あり
    • 外部公開用ではなく、NAT を使わずに外部からパッケージやソースを取得するため。予約は不要
  • 内部 IP アドレスを予約
    • Backstage 設定ファイルに記載するため、変わらないように予約
  • サービスアカウントなし
    • 起動するだけなら無くて OK。必要なら後で割り当て可

6. ファイアウォールルール設定

以下の設定で Inbound 許可ルールを作成

  • ネットワーク:4. で作成した VPC、サブネット
  • ターゲットタグ:5. で設定したネットワークタグ
  • ソースフィルタ:IP範囲 35.235.240.0/20
    • IAP の IP アドレス範囲)
  • プロトコルとポート:TCP 22

7. Backstage インストール

  1. のインスタンスに IAP 経由で SSH ログインして、下記の Prerequisites, 1. Create your Backstage App を実施。
    https://backstage.io/docs/getting-started/

Debian だと Prerequisites に書いてあるパッケージは一通りインストールが必要。

この記事記載時点での Node.js の最新バージョン 23 では起動しない (※) ため、22 を使用
https://github.com/laverdet/isolated-vm/issues/515 など参照

8. app-config.yaml 確認

app.baseUrl, backend.baseUrl, cors.origin いずれも localhost のままで OK。

9. Backstage アプリ起動

getting-started の 2. Run the Backstage app に従い yarn start で起動

10. IAP で接続

ローカル端末のターミナルを開き、以下コマンド実行

gcloud compute ssh {5. のインスタンス名} --zone {5. のインスタンスの Zone} --tunnel-through-iap -- -L 3000:localhost:3000 -L 7007:localhost:7007

ローカル端末が Windows の場合

gcloud compute ssh {5. のインスタンス名} --zone {5. のインスタンスの Zone} --tunnel-through-iap -- --ssh-flag="-L 3000:localhost:3000" --ssh-flag "-L 7007:localhost:7007" 

ターミナルは開いたままで次へ。

11. ブラウザで Backstage にアクセス

http://localhost:3000
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?