티스토리 뷰
# AWS EC2 생성
EC2(Elastic Compute Cloud)
-> 클라우드에서 빌려쓰는 가상 컴퓨터
// 인터넷을 통해 가상 서버(인스턴스)를 생성하여
운영체제를 설치하고 원하는 애플리케이션을 배포 수 있음
Instance
-> 클라우드에서 실행되는 가상 서버 (각각)
Elastic(탄력성)
-> 필요에 따라 서버 사양 조절
// 트래픽 몰릴 때 서버 수 자동으로 늘릴 수 있음
Cost Optimization(비용 효율성)
-> 사용한 만큼만 비용 지불, 초기 인프라 구축 비용 절감
AWS Console에서 EC2 생성 진행함
서울 리전으로 변경 후 EC2 대시보드로 이동
-> 'Launch Instance'

Linux(Ubuntu) 클릭, AMI는 기본 설정된 걸로.
인스턴스도 기본 설정된 t3.micro로.
이후 Key Pair 생성(.pem)
// 안전하게 보관하기(한번만 받을 수 있음)

이후 네트워크 설정 -> Security Groups

SSH(Secure Shell)
-> 안전한 원격 엑세스를 위해 컴퓨터 간 암호화된 연결을 설정하는 네트워크 프로토콜
// 원격 접속, 명령 제어, 파일 전송(보안 강화)
// 포트 번호 22번(SSH프로토콜 표준 // 공식 할당된 번호)
// My IP로 설정( Anywhere로 설정하면 누구나 내 서버 22번 포트까지 도달 가능.
비밀번호나 키 있어야 뚫리긴 하지만 시도 가능성 자체가 보안 위협. My IP가 더 안전)
SSH(Port 22)는 서버 관리자용 통로
HTTP(Port 80)과 HTTPS(Port 443)은 일반 방문객용 통로
스토리지 그냥 넉넉하게 20gb로 설정함(+ gp3)
// 프리티어 계정은 최대 30gb까지 무료로 설정 가능
인스턴스 개수는 1개
// 포트폴리오용이라 서버 1대면 충분
File systems는 안 건들고 패스
// EFS (Elastic File System)는 여러 대 EC2가 동시 연결해서 사용가능한 '공유 드라이브'
-> 서버 한대라 불필요
// S3 Files는 S3를 마치 서버의 하드디스크처럼 마운트해서 쓰게 해주는 최신 기능
-> 포폴 사이트는 보통 위에 설정한 20gb 정도로도 충분
// FSx는 특정 운영체제나 고성능 환경에 최적화된 파일 시스템(예: Windows 서버 전용, 고성능 연산용 Lustre 등)
-> 기업용 특수 목적 서비스라 일반적 웹서비스 구축엔 필요 없음
2. Traefik: 클라우드 네이티브 환경에서 널리 사용 되는 오픈 소스 리버스 프록시 및 로드 밸런서
// 도커(Docker)나 쿠버네티스에 최적화. 설정이 필요 없는 자동 감지 로드 밸런서(설정 자동화)
3. HAProxy: High Availability Proxy(고가용성 프록시)를 의미
// 로드 밸런싱 성능이 탁월. 대규모 트래픽 처리에 적합한 안정적인 오픈소스 프록시
4. Caddy: Go 언어로 작성된 현대적이고 강력한 오픈소스 웹 서버
// 설정이 매우 간단하고 사용자 친화적. 자동 SSL 인증(Let's Encrypt) 기능이 내장
ubunto OS는 이미 AWS 서버 안에 깔려있음(AMI)
우선 AWS 서버 접속(인스턴스 가서 만든 인스턴스 체크 후 connect)
'EC2 Instance Connect' 메뉴 뜸
-> 설정 그대로 내비두고 connect 클릭 (public IP, username도 ubuntu 그대로)

문제해결)
인스턴스에서 Security 탭 클릭
-> sg-xxxx...로 시작하는 파란색 링크 클릭
-> Edit inbound rules 클릭

내 IP 확인 후 비교, 이미 설정 잘 되어 있음 근데 안 됨
-> 보안 그룹에서 SSH의 소스를 Anywhere(0.0.0.0/0)로 바꾸니깐 정상 실행
// 문제는 내 IP가 실제로는 다른 IP로 외부에 나가고 있거나, 중간에 IP가 변조됨
(집에서 와이파이 공유기 써서 그런듯)
우선 이 상태로 진행
1. 인스턴스 서버 접속
2. Nginx 설치 및 실행
sudo apt update
// 패키지 목록 업데이트 (공사 전 준비)
sudo apt install nginx -y
// Nginx 설치
// 리눅스에서 sudo(superuser do)는 root 권한으로 명령어를 실행하게 해주는 명령어
3. Nginx 상태 확인
sudo systemctl status nginx
-> active (running)이라고 뜨면 성공
4. 최종 결과 확인
브라우저 주소창에 내 EC2 퍼블릭 IPv4 주소(ex. 54.180.xxx.xxx)를 입력
-> Welcome to Nginx 화면이 뜨면 끝

'AI스쿨 > 알토르과정' 카테고리의 다른 글
| [알토르] 7주차 : Flask API 서버 배포 및 Vercel 연동 (0) | 2026.04.19 |
|---|---|
| [알토르] 6주차 추가과제 : 서브도메인 생성 & SSL 인증서 적용 (0) | 2026.04.11 |
| [알토르] 5주차 추가과제 : Gemini API 프론트엔드 연결 및 채팅 UI 구현 (0) | 2026.04.05 |
| [알토르] 5주차 과제 : (2) Python Flask REST API와 Gemini 연동 구현 (1) | 2026.04.01 |
| [알토르] 5주차 과제 : (1) 도메인 구매 & Vercel 연동 (0) | 2026.03.31 |
