Search

4. [부록] n8n AWS로 배포하기 (야매버전)

섹션
2. n8n은 어디에 쓸 수 있나요?

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 활용