728x90
💻 웹사이트를 배포할 때 고려할 점
- 정적 웹사이트 - 미리 서버에서 생성된 HTML, CSS, JS 파일등으로 이루어진 웹사이트이며, 요청이 있을 때 단순히 파일을 그대로 전달 (동적인 콘텐츠 불가: 로그인, 사용자 맞춤 콘텐츠, 데이터베이스 연동 불가, 응답 속도 빠름, 해킹 가능성 적음) => 개인 블로그, 포트폴리오, 소개 페이지 등에 사용
- 동적 웹사이트 - 사용자의 요청에 따라 서버에서 동적으로 페이지를 생성하여 응답하는 웹사이트
➡ 결론: 데이터베이스(Firebase Firestore)와 카카오톡 로그인 제공이 필요하기 때문에 동적 배포하기로 결정!
1️⃣ 기본 작업
aws 계정 생성 + 카드 등록
2️⃣ EC2 인스턴스 생성
- AWS Management Console 이동
- 리전 선택: 가까운 리전을 선택하면 더 빠른 응답 속도를 기대할 수 있음
- Amazon Linux 2 + t2.micro (무료 계층) 선택
- 키 파일 저장 (.pem): 터미널에서 해당 인스턴스에 접속할 때마다 사용해야 함!!
3️⃣ 도메인 구입 및 DNS 설정 (hosting.kr 기준)
- hosting.kr / 가비아 등등 원하는 도메인 구입
- A 레코드 추가
레코드 타입: A, 호스트 이름: @ (또는 비워두기 - @는 루트 도메인을 의미), IP 주소: EC2 인스턴스의 Elastic IP address 입력, TTL: 기본값 또는 600(초) - www 서브 도메인 추가 (선택사항)
레코드 타입: A, 호스트 이름: www, IP 주소: EC2 인스턴스의 Elastic IP address 입력, TTL: 기본값 또는 600(초)
3️⃣ EC2 인스턴스에 프로젝트 dist 파일 전송 및 웹 서버 설정
Apache와 Nginx등 웹 서버 설치하는 과정 (나의 경우는 Nginx를 사용)
① 터미널 접속 (Public IPv4 DNS 주소는 세팅을 함면 바뀔 수 있음)
ssh -i "/path/to/your.pem" /path/to/your.pem <Public IPv4 DNS>
ssh -i "/path/to/your.pem" ec2-user@Elastic IP address // IP 세팅한 후에는 IP로 접속
② 위의 명령어 permission 오류가 나는 경우 (파일 소유자만 읽을 수 있도록 설정)
chmod 400 /path/to/your.pem
③ 프로젝트를 로컬에서 빌드해서 EC2 인스턴스에 전송
scp -i "/path/to/your.pem" -r ./dist <Public IPv4 DNS>:/var/www/html/
④ Nginx 설치 (Amazon Linux 2 버전)
sudo yum install nginx -y
⑤ Nginx 설정 파일 수정 (파일 저장: Control + X)
sudo nano /etc/nginx/nginx.conf // 파일 열기
server {
listen 80;
server_name 구매한 도메인 www.구매한 도메인;
root /var/www/html/dist;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
error_page 404 /404.html;
location = /404.html {
internal;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
internal;
}
}
sudo systemctl restart nginx // Nginx 재시작 후 웹사이트 확인(구매한 도메인으로)
5️⃣ HTTPS 설정 (옵션)
보안 강화를 위해 설정한다. Let's Encrypt를 사용해 SSL 인증서를 무료로 설치할 수 있다.
sudo apt-get install certbot python3-certbot-nginx
sudo certbot --nginx -d 구매한 도메인 -d www.구매한 도메인 // 인증서 설치
sudo certbot renew --dry-run // 인증서(Certbot) 자동 갱신 설정
🆖 이외 오류들 확인 방법
① Nginx 포트 충돌 확인 (80)
sudo lsof -i :80
②Nginx 구성 파일 오류
sudo nginx -t
③ Nginx 상태 확인
sudo systemctl status nginx.service
④ EC2 인스턴스 접속 불가 (타임아웃 등..)
- ssh -i "/path/to/Mohito.pem" <<Public IPv4 DNS> => Public IPv4 DNS 확인 필요 (바뀜) + IP 할당하면 안됨 (ip로 접속하기)728x90
'TECH' 카테고리의 다른 글
| content-visibility 속성 (2) | 2025.05.22 |
|---|---|
| ZonedDateTime (6) | 2025.05.19 |
| Swiper (0) | 2024.10.25 |
| Lottie 로딩바 적용하기 (0) | 2023.08.06 |
| SQS (AWS Simple Queue Service) (0) | 2023.03.13 |