On this page
cloud
AWS EC2
aws-ec2.sh user data 스크립트를 사용하여 AWS EC2 인스턴스에 rtCloud를 배포합니다.
EC2 인스턴스를 시작할 때 aws-ec2.sh를 User Data 스크립트로 사용합니다. 스크립트는 첫 번째 부팅 시 자동으로 실행됩니다.
스크립트 다운로드: 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 콘솔에서:
- 인스턴스 시작 클릭
- AMI: Ubuntu Server 22.04 LTS (64비트 x86)
- 인스턴스 유형:
t3.medium(4 GB RAM) 이상 - 키 페어: SSH 접근을 위한 키 페어 선택 또는 생성
- 네트워크 설정: 보안 그룹 생성 또는 선택 (아래 참조)
- 고급 세부 정보 → User data → 전체 스크립트 내용 붙여넣기
- 인스턴스 시작 클릭
3단계 — 보안 그룹 구성
인스턴스의 보안 그룹에서 다음 포트를 엽니다:
| 포트 | 프로토콜 | 소스 | 목적 |
|---|---|---|---|
| 22 | TCP | 사용자 IP | SSH 접근 |
| 80 | TCP | 0.0.0.0/0 | HTTP (Nginx에서 HTTPS로 리디렉션) |
| 443 | TCP | 0.0.0.0/0 | HTTPS |
| 3838 | TCP | 0.0.0.0/0 | Shiny 직접 접근 |
포트 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를 유지하려면 Elastic IP를 할당하고 EC2 콘솔에서 인스턴스에 연결하세요.
이 페이지가 도움이 되었나요?