EC2 운영 치트시트¶
자주 쓰는 명령어 모음. EC2 SSH 접속 후 사용.
배포 / 컨테이너¶
# 컨테이너 상태
docker ps
# 로그 (실시간)
docker logs -f hoseo-moodiary
# 로그 (최근 100줄)
docker logs --tail=100 hoseo-moodiary
# 수동 재배포 (CD 못 기다릴 때)
docker compose pull && docker compose up -d
# 환경변수 주입 확인 (값 노출 X, 길이만)
docker exec hoseo-moodiary printenv JWT_SECRET | wc -c
docker compose(스페이스) vsdocker-compose(하이픈) — EC2 환경 의존 (T-023 참조).
DB (RDS)¶
# .env 로드
set -a; source ~/.env; set +a
# RDS 접속 (비번 프롬프트)
mysql -h "$RDS_ENDPOINT" -u "$RDS_USERNAME" -p moodiary
# 또는 환경변수로 비번 자동 (보안 경고 없음)
MYSQL_PWD="$RDS_PASSWORD" mysql -h "$RDS_ENDPOINT" -u "$RDS_USERNAME" moodiary
# 테스트 데이터 정리 (졸업 데모 직전)
MYSQL_PWD="$RDS_PASSWORD" mysql -h "$RDS_ENDPOINT" -u "$RDS_USERNAME" moodiary -e "
DELETE FROM post WHERE user_id IN (SELECT user_id FROM users WHERE user_email LIKE '%@test.com');
DELETE FROM users WHERE user_email LIKE '%@test.com';
"
GitHub Actions¶
- 워크플로우: https://github.com/Goospel/hoseo-moodiary/actions
- CI 트리거:
PR → dev - CD 트리거:
push → main - CD 인프라 fail 시 0번째 진단: githubstatus.com (T-024)
트러블슈팅 1차 확인 표¶
| 증상 | 1차 확인 |
|---|---|
| 8080 응답 없음 | docker ps (컨테이너 살아있나) → docker logs |
| 500 응답 | docker logs --tail=200 hoseo-moodiary → DB 연결 / 스키마 |
| 401인데 이상함 | 토큰 만료 (24h) → 재로그인. JWT_SECRET 변경됐는지도 확인 |
| 403인데 이상함 | 본인 토큰 맞나 + userId 일치 확인 |
| RDS 접속 안됨 | RDS Security Group 인바운드 확인 |
| CD 실패 | GitHub Actions 로그 → SSM 단계 / OIDC 자격증명 |
| CD 인프라 단계 fail | 0번째 — githubstatus.com 확인 (T-024) |
막혔던 사례 누적 →
troubleshooting.md