ใช้ 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 client ID ตัวเล็ก ไม่มีช่องว่าง
ADMIN_PASSWORDไม่รหัสผ่านผู้ดูแลระบบแอปและ Keycloak ค่าเริ่มต้นเป็น adminเปลี่ยนหลังเข้าสู่ระบบครั้งแรก
DOMAINไม่โดเมนของคุณสำหรับ HTTPS เว้นว่างสำหรับโหมด HTTP เท่านั้น
LETSENCRYPT_EMAILใช่ (ถ้าตั้ง DOMAIN)อีเมลสำหรับการแจ้งเตือน Let’s Encrypt
EMBED_KEYCLOAKไม่true เพื่อติดตั้ง Keycloak แบบฝัง (ต้องการ RAM 4 GB)

ความปลอดภัย: รหัสผ่านทั้งหมดเริ่มต้นเป็น admin เปลี่ยนทันทีหลังจากเข้าสู่ระบบครั้งแรก


ขั้นตอนที่ 2 — เปิดใช้งานอินสแตนซ์ EC2

ใน AWS EC2 console:

  1. คลิก Launch instance
  2. AMI: Ubuntu Server 22.04 LTS (64-bit x86)
  3. Instance type: t3.medium (4 GB RAM) หรือใหญ่กว่า
  4. Key pair: เลือกหรือสร้างสำหรับการเข้าถึง SSH
  5. Network settings: สร้างหรือเลือก Security Group (ดูด้านล่าง)
  6. Advanced detailsUser data → วางเนื้อหาสคริปต์ทั้งหมด
  7. คลิก Launch instance

ขั้นตอนที่ 3 — กำหนดค่า Security Group

เปิดพอร์ตเหล่านี้ใน Security Group ของอินสแตนซ์:

พอร์ตโปรโตคอลต้นทางวัตถุประสงค์
22TCPIP ของคุณการเข้าถึง SSH
80TCP0.0.0.0/0HTTP (เปลี่ยนเส้นทางไปยัง HTTPS โดย Nginx)
443TCP0.0.0.0/0HTTPS
3838TCP0.0.0.0/0การเข้าถึง Shiny โดยตรง

อย่า เปิดพอร์ต 3306 (MySQL) — ไม่ควรเข้าถึงได้สาธารณะ


ขั้นตอนที่ 4 — เพิ่ม DNS record

ขณะที่อินสแตนซ์บูต ให้เพิ่ม A record ในผู้ให้บริการ 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 console

หน้านี้มีประโยชน์หรือไม่?