반응형
Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
Tags
- #악어 #카피바라 #설치류 #카이만 #네셔널지오그래픽 #IUCNCSG.ORG
- #유럽 미술관 #오랑주리 미술관 #산 마르코 미술관# 로댕 미술관 #브레라 미술관 #샤갈 미술관 #오페라 가르니에 #귀스타브 모로 미술관 #아카데미아 갤러리 #우피치 미술관#바르베리니 궁전 #코톨드 갤러리 #스탕달 신드롬
- 언론 #백업 backup #세계적으로 가장 강력한 툴
- 프랑스) #바티칸 박물관(로마
- #선진국 대한민국 #선진국 #대한민국 #아이들 #청소년 #고민 #해결 #심리
- #ExifTool # 메타데이터 metadata #meta information #사진
- 문서 파일 #사진 정리 #포렌식 # 출판
- 영국) #프라도 미술관(마드리드
- xls
- ppt) 파일 #오피스(워드
- # 그리스 신화 # 로마 신화 #카오스 #가이아 #우라노스 #크로노스 #제우스 #헤라 #포세이돈 #하데스 #데메테르 #아테나 #아폴론 # 아르테미스 #헤르메스 #헤파이스토스 #계보 #그리스 로마 신화 영어 어원
- #스탕달 신드롬 #유럽 미술관 #우피치 미술관(피렌체
- 프랑스) #오랑주리 미술관(파리
- #다산 정약용 #유배지에서 보낸 편지 #도덕 #용기 #염 #주역 #호연지기 #효제 #근검
- 이탈리아) #오르세 미술관(파리
- 이탈리아) #루브르 박물관(파리
- 프랑스)#내셔널 갤러리(런던
- 티스토리챌린지
- #파이썬 #번역 프로그램 #async await #동기 비동기 #coroutine #googletrans #translator
- 네덜란드) #샤갈 미술관(니스
- #데일카네기 인간관계론 (고전 필독서) #인간관계론 (도서명) #인간관계개선 (가장 핵심적인 목적) #대화의기술 (실질적인 활용법) #인간관계꿀팁 (정보성) #직장생활팁 (실용성) #자기계발서 (카테고리)
- 오블완
- 간단한 Word 자동화 프로그램 #다산 정약용 # 유배지에서 보낸 편지 #유니코드 이스케이프
- # 암호(비밀번호) 분실 # 암호(비밀번호) 찾기 #오피스(doc
- 파워포인트) #집(zip)파일 #아래한글(HWP) #brute-force(무차별 대입)
- 스페인) #르네상스·바로크 조각 미술관(보르게세
- 엑셀
- #자기계발 #자기성장 #자기관리 #긍정적인삶 #마인드셋 #심리학에세이 #삶의태도
- 로마) #반 고흐 미술관(암스테르담
- #평판관리 #좋은평가받는법 #관계심리학 #인간관계팁 #신뢰쌓기 #진심의힘
Archives
- Today
- Total
아톨러브
AWS EC2에 프론트엔드 배포하기 본문
반응형
1단계: build 폴더 내용 확인 및 재업로드 (필요시)
build 폴더가 로컬에서 완벽하게 빌드된 상태로 EC2에 전송되었는지 확인하는 것이 중요합니다.
- 로컬에서 build 폴더 재빌드:
- 로컬 컴퓨터에서 프론트엔드 프로젝트 디렉토리로 이동하여 다시 빌드합니다.
Bashnpm run build # 또는 yarn build- 빌드가 성공적으로 완료되었는지 확인합니다.
- EC2의 기존 build 폴더 삭제:
- AWS EC2 인스턴스 터미널에서 front 디렉토리로 이동합니다.
Bashcd /home/ec2-user/front sudo rm -rf build # 기존 build 폴더를 완전히 삭제합니다. - build 폴더 재업로드:
- 로컬 컴퓨터에서 새로 빌드된 build 폴더를 EC2 인스턴스의 /home/ec2-user/front/ 경로로 다시 업로드합니다.
- scp 명령어를 사용한다면:
Bashscp -r -i /path/to/your/key.pem /path/to/your/local/frontend/project/build ec2-user@your-ec2-public-ip:/home/ec2-user/front/- FileZilla나 WinSCP 같은 SFTP 클라이언트를 사용한다면, 로컬의 build 폴더를 EC2의 /home/ec2-user/front/ 경로로 드래그 앤 드롭합니다.
- EC2에서 build 폴더 내용 확인:
- 업로드 후 EC2에서 ls -l /home/ec2-user/front/build 명령어를 실행하여 index.html 파일이 있는지, 그리고 다른 .js, .css 파일들이 잘 들어와 있는지 육안으로 확인해 보세요.

2단계: serve 패키지 설치 및 실행
프론트엔드 정적 파일을 서빙하기 위해 serve 패키지를 사용하고 있다면, 이를 EC2 인스턴스에 설치하고 올바르게 실행해야 합니다.
- serve 패키지 전역 설치:
- build 디렉토리로 이동할 필요 없이, EC2 인스턴스 어디에서든 한 번만 설치하면 됩니다.
Bashsudo npm install -g serve - 기존 serve 프로세스 종료 (필요시):
- 혹시 이전에 잘못 실행된 serve 프로세스가 있다면 종료합니다.
Bashps -ef | grep serve # 위 명령어로 나온 serve 프로세스의 PID (두 번째 열의 숫자)를 확인하여 종료합니다. # 예시: sudo kill 12345 (12345는 PID) - serve를 build 디렉토리에서 백그라운드로 실행:
- 매우 중요: serve는 index.html 파일이 있는 디렉토리에서 실행되어야 합니다.
- front/build 디렉토리로 이동합니다.
Bashcd /home/ec2-user/front/build- serve를 백그라운드에서 실행합니다. 프론트엔드 앱을 위한 포트를 5000번으로 가정하겠습니다. (Flask 앱이 5500번을 사용하므로 충돌하지 않게 다른 포트를 사용하세요.)
Bashnohup serve -s -l 5000 &- -s: 정적 파일을 서빙하라는 옵션입니다.
- -l 5000: 5000번 포트에서 리스닝하라는 옵션입니다. 필요에 따라 3000, 80 등 다른 포트를 사용할 수 있습니다.
- &: 백그라운드 실행.
- nohup: 터미널 세션이 끊어져도 프로세스가 계속 실행되도록 합니다.
- serve 프로세스 확인:
- ps -ef | grep serve 명령어를 다시 실행하여 serve 프로세스가 Up 상태로 잘 실행되고 있는지 확인합니다. 이제 한 개의 serve 프로세스가 보일 것입니다.
3단계: AWS 보안 그룹 설정 확인
serve가 5000번 포트에서 실행되고 있더라도, AWS 보안 그룹에서 해당 포트가 열려 있지 않으면 외부에서 접근할 수 없습니다.
- AWS Management Console 로그인:
- EC2 대시보드 이동:
- 인스턴스 선택: 당신의 EC2 인스턴스를 선택합니다.
- 보안 그룹 확인:
- "보안(Security)" 탭을 클릭한 후, 연결된 "보안 그룹(Security groups)" 이름을 클릭합니다.
- 인바운드 규칙 편집:
- "인바운드 규칙(Inbound rules)" 탭을 클릭합니다.
- "인바운드 규칙 편집(Edit inbound rules)" 버튼을 클릭합니다.
- 새 규칙 추가 또는 기존 규칙 수정:
- 규칙 추가:
- 유형(Type): "사용자 지정 TCP(Custom TCP)"
- 포트 범위(Port range): 5000 (또는 serve가 리스닝하는 포트)
- 소스(Source):
- 가장 안전한 방법: 당신의 로컬 컴퓨터 공인 IP 주소 (예: "내 IP" 선택)
- 테스트 목적 (보안 취약): 0.0.0.0/0 (모든 IP 허용, 테스트 후 반드시 제한)
- 설명(Description): Frontend Serve Access와 같이 규칙의 목적을 기재합니다.
- 규칙 추가:
- 규칙 저장: "규칙 저장(Save rules)" 버튼을 클릭합니다.
4단계: 웹 브라우저에서 프론트엔드 접속 시도
모든 설정이 완료되었다면, 웹 브라우저를 열고 다음 주소로 접속해 보세요:
http://[YOUR_EC2_PUBLIC_IP]:5000
- [YOUR_EC2_PUBLIC_IP]는 당신의 AWS EC2 인스턴스의 퍼블릭 IP 주소입니다. (예: http://15.165.158.247:5000)
이 단계를 모두 거치면 프론트엔드 애플리케이션이 웹에서 정상적으로 구동될 것입니다. 만약 여전히 문제가 발생한다면, EC2 터미널에서 nohup.out 파일의 내용(tail -f nohup.out)이나 serve 프로세스의 로그를 확인합니다.
반응형
'AI, 클라우드, 문서, 자동화' 카테고리의 다른 글
| Qdrant 벡터 데이터베이스에 새로운 컬렉션(Collection)을 생성하는 예시 (0) | 2025.07.20 |
|---|---|
| React 기본 사용법 (0) | 2025.07.14 |
| .env 파일을 AWS 인스턴스에 올리는 방법 (0) | 2025.07.12 |
| 도커(docker)에 Qdrant 벡터 데이터베이스 실행하기(로컬 & 클라우드) (0) | 2025.07.12 |
| 마인드맵으로 아이디어 정리와 실시간 협업 소프트웨어로 업무 성과 창출 (0) | 2024.12.13 |