EC2インスタンスを起動する際にaws-ec2.shユーザーデータスクリプトとして使用します。スクリプトは初回起動時に自動的に実行されます。

スクリプトのダウンロード: aws-ec2.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 — EC2インスタンスを起動する

AWS EC2コンソールで:

  1. インスタンスを起動をクリックする
  2. AMI: Ubuntu Server 22.04 LTS(64-bit x86)
  3. インスタンスタイプ: t3.medium(4 GB RAM)以上
  4. キーペア: SSHアクセス用のものを選択または作成する
  5. ネットワーク設定: セキュリティグループを作成または選択する(下記参照)
  6. 詳細ユーザーデータ → スクリプト全体の内容を貼り付ける
  7. インスタンスを起動をクリックする

ステップ3 — セキュリティグループを設定する

インスタンスのセキュリティグループで以下のポートを開く:

ポートプロトコル送信元目的
22TCP自分のIPSSHアクセス
80TCP0.0.0.0/0HTTP(NginxによりHTTPSにリダイレクト)
443TCP0.0.0.0/0HTTPS
3838TCP0.0.0.0/0Shiny直接アクセス

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


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

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

  Type  : A
Name  : myapp
Value : <instance-public-ip>
TTL   : 300
  

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

  ssh ubuntu@<instance-ip>
tail -f /var/log/rtcloud-setup.log
  

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

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


デプロイ後

パスワードを変更する

  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
  

Elastic IPを割り当てる(オプション)

インスタンスを停止・起動すると、パブリックIPが変わります。安定したIPを保持するには、EC2コンソールでElastic IPを割り当ててインスタンスに関連付けてください。

このページは役に立ちましたか?