Compute Engine VMインスタンスを作成する際にgcp-compute.shスタートアップスクリプトとして使用します。スクリプトは初回起動時に自動的に実行されます。

スクリプトのダウンロード: gcp-compute.sh


ステップ1 — 設定を入力する

スクリプトを開き、先頭のCONFIGURATIONブロックを編集する:

  # --- 必須 ---
PROJECT_ID="rtsurvey"
ADMIN_PASSWORD="admin"                       # 初回ログイン後変更すること

# --- ドメイン + SSL ---
DOMAIN="myapp.example.com"
LETSENCRYPT_EMAIL="admin@example.com"

# --- 組み込みKeycloak ---
EMBED_KEYCLOAK="true"
KEYCLOAK_ADMIN_PASSWORD="${ADMIN_PASSWORD}"  # ADMIN_PASSWORDにデフォルト設定
  
フィールド必須説明
PROJECT_IDはいデータベース名とKeycloakクライアントIDとして使用される。小文字、スペースなし。
ADMIN_PASSWORDいいえアプリ管理者パスワードとKeycloak管理者パスワード。デフォルトはadmin初回ログイン後すぐに変更すること
DOMAINいいえHTTPS用のドメイン。HTTPのみのモードには空白のまま。
LETSENCRYPT_EMAILはい(DOMAINが設定されている場合)Let’s Encrypt通知用メール。
EMBED_KEYCLOAKいいえ組み込みKeycloakをデプロイするにはtrue(4 GB RAMが必要)。

セキュリティ: すべてのパスワードはデフォルトでadminです。初回ログイン後すぐに変更してください。


ステップ2 — VMインスタンスを作成する

Google Cloudコンソールで:

  1. インスタンスを作成をクリックする
  2. マシン設定:
    • シリーズ:E2
    • マシンタイプ:e2-medium(4 GB RAM)以上
  3. ブートディスク:
    • オペレーティングシステム:Ubuntu
    • バージョン:Ubuntu 22.04 LTS
    • サイズ:40 GB以上
  4. ファイアウォール: HTTPトラフィックを許可HTTPSトラフィックを許可にチェックを入れる
  5. 詳細オプション管理自動化スタートアップスクリプト → スクリプト全体の内容を貼り付ける
  6. 作成をクリックする

ステップ3 — DNSレコードを追加する

VMが起動している間に、DNSプロバイダーにAレコードを追加する:

  Type  : A
Name  : myapp
Value : <vm-external-ip>
TTL   : 300
  

コンソールのVMインスタンスリストで外部IPを確認できます。


ステップ4 — 進捗を監視する

gcloud CLIを使用する:

  gcloud compute ssh <instance-name> -- tail -f /var/log/rtcloud-setup.log
  

または直接SSHする:

  ssh <username>@<vm-external-ip>
tail -f /var/log/rtcloud-setup.log
  

ステップ5 — アプリにアクセスする

セットアップが完了すると、ログにアプリのURLと認証情報のサマリーが表示されます。ユーザー名admin、パスワードadminでログインし、すぐにパスワードを変更してください。


ファイアウォールルール

GCPのHTTP/HTTPSを許可チェックボックスでポート80と443が開きます。ポート3838でShinyへの直接アクセスも許可するには、ファイアウォールルールを追加する:

  gcloud compute firewall-rules create allow-shiny \
  --allow tcp:3838 \
  --target-tags http-server
  

またはコンソールから追加する:VPCネットワークファイアウォールルールを作成

ポート3306(MySQL)は開かないでください — 公開アクセスは絶対に禁止です。


静的IP(オプション)

デフォルトでは、GCPはVM再起動時に変わるエフェメラル外部IPを割り当てます。安定したIPを保持するには:

  1. VPCネットワークIPアドレスに移動する
  2. 外部静的アドレスを予約をクリックする
  3. VMインスタンスに割り当てる

デプロイ後

パスワードを変更する

  nano /opt/rtcloud/.env
docker compose -f /opt/rtcloud/docker-compose.production.yml up -d --force-recreate rtcloud
  

すべてのコンテナを確認する

  docker compose -f /opt/rtcloud/docker-compose.production.yml ps
  
このページは役に立ちましたか?