n8n AWS 배포 가이드 (EC2 + Docker 활용)
AWS Docker 배포 옵션 개요
4가지 AWS Docker 배포 방법
•
EC2: 가장 일반적인 방법, 인스턴스 생성 후 간단 배포
•
ECS (Elastic Container Service): AWS 전용 컨테이너 서비스
◦
Fargate: 서버리스 방식
◦
EC2 연동: 일반 서비스 대응
•
EKS: AWS Kubernetes 서비스
•
Lambda: 추천하지 않음 (설정 복잡, 간단한 함수용)
권장 방법
•
EC2 방식 선택: 설정 용이성과 안정성
•
메모리 고려사항 및 Spot Instance 활용 가능
EC2 인스턴스 설정
인스턴스 생성
기본 설정
•
이름 지정: 인스턴스 식별용
•
이미지 선택: Ubuntu (프리티어)
•
인스턴스 타입: t2.micro (프리티어)
•
키 페어 생성: SSH 접속용
VPC 및 네트워크 설정
•
VPC 생성: 기본값 사용 금지, 새로 생성 권장
•
서브넷 설정: 퍼블릭 서브넷 사용 (실제 운영시 프라이빗 권장)
•
퍼블릭 IP 자동 할당: 활성화
보안 그룹 설정
필수 포트 개방
•
SSH (22): 내 IP만 허용
•
HTTP (80): 전체 허용 (도메인 인증용)
•
HTTPS (443): 전체 허용 (웹 서비스용)
서버 환경 구성
Docker 설치
Docker 설치 과정
•
공식 문서 명령어 활용
•
사전 작업 및 패키지 업데이트
•
Hello World 컨테이너로 설치 확인
Nginx 설치 및 설정
기본 설치
•
Nginx 패키지 설치
•
서버 블록 설정 파일 확인
•
포트 80, 443 리스닝 설정
SSL 인증서 및 도메인 설정
Route 53 도메인 관리
도메인 구매 및 설정
•
도메인 선택: .link 도메인이 가장 저렴 ($5)
•
Route 53 권장: AWS 서비스 연동 용이성
•
ACM 인증서: 무료 SSL 인증서 활용 가능
DNS 레코드 설정
•
A 레코드 생성: 서브도메인을 EC2 퍼블릭 IP로 연결
•
DNS 전파 대기: 시간 소요 고려
Elastic IP 설정 (선택사항)
•
고정 IP 할당: EC2 재시작 시 IP 변경 방지
•
비용: 1개 Elastic IP 무료
SSL 인증서 설정
Certbot을 통한 무료 인증서
인증서 발급
•
Certbot 설치: Let's Encrypt 무료 인증서
•
도메인 인증: 이메일 주소 등록 필요
•
자동 갱신: 91일마다 갱신 알림
Nginx 자동 설정
•
인증서 경로 자동 설정: Certbot이 Nginx 설정 자동 수정
•
HTTPS 리다이렉션: 자동 구성
n8n 배포 및 프록시 설정
Docker로 n8n 실행
•
백그라운드 실행: 데몬 모드 사용
•
포트 설정: 5678 포트에서 실행
Nginx 리버스 프록시 설정
포트 포워딩 구성
•
443 → 5678: HTTPS 요청을 n8n으로 전달
•
Location 블록 설정: 프록시 규칙 정의
•
Nginx 재시작: 설정 적용
최종 확인
•
도메인 접속: HTTPS로 n8n 웹 인터페이스 확인
•
계정 생성: 관리자 계정 설정 완료
보안 및 운영 고려사항
보안 강화 방안
•
프라이빗 서브넷: 실제 운영시 권장
•
Bastion 호스트: 보안 접속 경로
•
SSH 키 관리: 안전한 접속 방법
비용 최적화
•
프리티어 활용: t2.micro 인스턴스
•
Spot Instance: 비용 절약 옵션
•
도메인 선택: 저렴한 TLD 활용