Используйте aws-ec2.sh как скрипт User Data при запуске экземпляра EC2. Скрипт запускается автоматически при первой загрузке.

Скачать скрипт: 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. Строчные буквы, без пробелов.
ADMIN_PASSWORDНетПароль администратора приложения и Keycloak. По умолчанию adminсмените после первого входа.
DOMAINНетВаш домен для HTTPS. Оставьте пустым для режима только HTTP.
LETSENCRYPT_EMAILДа (если задан DOMAIN)Email для уведомлений Let’s Encrypt.
EMBED_KEYCLOAKНетtrue для развёртывания встроенного Keycloak (требует 4 ГБ RAM).

Безопасность: Все пароли по умолчанию равны admin. Немедленно смените их после первого входа.


Шаг 2 — Запустите экземпляр EC2

В консоли AWS EC2:

  1. Нажмите Launch instance
  2. AMI: Ubuntu Server 22.04 LTS (64-bit x86)
  3. Тип экземпляра: t3.medium (4 ГБ RAM) или больше
  4. Пара ключей: Выберите или создайте для доступа по SSH
  5. Настройки сети: Создайте или выберите группу безопасности (см. ниже)
  6. Advanced detailsUser data → вставьте полное содержимое скрипта
  7. Нажмите Launch instance

Шаг 3 — Настройте группу безопасности

Откройте следующие порты в группе безопасности экземпляра:

ПортПротоколИсточникНазначение
22TCPВаш IPДоступ по SSH
80TCP0.0.0.0/0HTTP (перенаправляется на HTTPS через Nginx)
443TCP0.0.0.0/0HTTPS
3838TCP0.0.0.0/0Прямой доступ к Shiny

Не открывайте порт 3306 (MySQL) — он никогда не должен быть публично доступен.


Шаг 4 — Добавьте DNS-запись

Пока экземпляр загружается, добавьте A-запись у вашего DNS-провайдера:

  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 выделите Elastic IP и свяжите его с экземпляром в консоли EC2.

Была ли эта страница полезной?