[AWS] 웹 애플리케이션 배포하기 (EC2)
[1편: EC2 인스턴스 만들고 RDS 연결까지]
이 글은 AWS에서 EC2 인스턴스를 생성하고, 웹 애플리케이션을 배포하려는 분들을 위한 실습형 가이드입니다.
"인스턴스는 만들었는데 뭘 해야 할지 모르겠다", "RDS가 뭔지는 알겠는데 연결은 처음이다" 하는 분들께 추천드립니다.
AWS 계정은 미리 만들고 와주세요.
EC2와 RDS는 뭔가요?
- EC2 (Elastic Compute Cloud)
AWS에서 제공하는 가상 서버(VM)입니다. Ubuntu, CentOS 등 운영체제를 설치하고 직접 서버처럼 다룰 수 있습니다.
→ 내 컴퓨터가 아닌 클라우드에서 돌아가는 컴퓨터라고 생각하면 쉽습니다. - RDS (Relational Database Service)
AWS가 대신 관리해주는 데이터베이스 서버입니다.
MySQL, PostgreSQL, Oracle 등의 DB를 설치하지 않고 바로 사용할 수 있습니다.
☁️ 이 둘을 함께 사용하면, 웹 애플리케이션을 배포하고 데이터도 안전하게 저장할 수 있습니다!
웹 애플리케이션 배포하기
EC2 인스턴스 준비
기존 인스턴스에서 이미지(AMI) 가져오기
기존에 사용하신 인스턴스가 존재한 경우에, AMI로 생성 후 다른 계정에도 공유할 수 있습니다. 방법은 아래와 같습니다.
- AWS EC2 대시보드에서 사용 중인 인스턴스를 클릭
- 우측 상단 작업 → 이미지 및 템플릿 → 이미지 생성
- 이름과 설명만 입력 후 생성 → 좌측 메뉴 AMI에서 확인
- 생성 완료 후 작업 → AMI 권한 편집 → 공유할 계정 ID 입력
AMI 생성은 보통 3~10분 정도 소요됩니다.
이 방식은 구축된 환경을 복제하거나, 팀원과 공유할 때 유용합니다.
새로운 EC2 인스턴스 생성
1-1. 처음부터 인스턴스를 생성하는 경우
- EC2 대시보드에서 좌측 사이드바에 인스턴스를 클릭 후, 인스턴스 시작을 눌러주세요.
- 인스턴스의 이름 및 태그를 설정해주세요.
- 원하는 Ubuntu 22.04LTS 등 원하는 이미지(AMI)를 선택해주세요.
- 새 키페어를 생성한 후 잘 보관해주세요. 추후 서버에 접근할 때 필요합니다.
- 네트워크 설정 - 보안 그룹에서 SSH, HTTPS, HTTP 허용 (소스는 0.0.0.0/0)
1-2. AMI가 있는 경우에
- AMI 공유 받은 계정에서 AMI로 인스턴스 시작
- 2번 부터의 과정은 위와 동일합니다.
탄력적 IP (Elastic IP) 연결
- 사이드바에 있는 네트워크 및 보안, 탄력적 IP 클릭 후 탄력적 IP 주소 할당을 눌러주세요.
- 생성된 IP를 클릭하여 우측 상단에 있는 작업, 탄력적 IP 주소 연결을 눌러주세요.
- 인스턴스 및 프라이빗 IP 선택 후 연결하시면 연결이 끝납니다.
탄력적 IP를 할당하지 않으면 EC2가 재시작될 때 IP가 바뀌므로 주의해주세요.
한 번이라도 운영 목적 또는 외부에서 접근해야 한다면 탄력적 IP가 필요할 수 있습니다. 단기 개발/실습 목적이고 IP가 바뀌는 걸 감당할 수 없으면 연결하지 않으셔도 괜찮습니다. 탄력적 IP의 경우에 요금이 부과되니 이 점 인지해주세요.
https://aws.amazon.com/ko/blogs/korea/new-aws-public-ipv4-address-charge-public-ip-insights/
공지 – AWS Public IPv4 주소 요금 변경 및 Public IP Insights 기능 출시 | Amazon Web Services
AWS에서 퍼블릭(Public) IPv4 주소에 대한 새로운 요금이 도입됩니다. 2024년 2월 1일부터 서비스 연결 여부에 관계없이 모든 퍼블릭 IPv4 주소에 대해 시간당 IP당 0.005 USD의 요금이 부과됩니다. 계정에
aws.amazon.com
RDS 생성 및 연결
MySQL RDS 생성하기
- Aurora and RDS 대시보드 좌측 사이드바에서 데이터베이스, 데이터 베이스 생성을 클릭해줍니다.
- 사용하실 엔진, 템플릿을 선택하고 퍼블릭 액세스 허용을 체크해줍니다.
- 사용자 이름과 비밀번호를 설정해줍니다.
- 파라미터 그룹 생성 시 utf8mb4 설정해줍니다. (한글 깨짐 방지)
- 데이터베이스 생성 완료되면 엔드포인트 주소를 복사해줍니다.
RDS 인바운드 규칙 추가
- EC2 대시보드 네트워크 및 보안에서 보안 그룹에 들어가줍니다.
- RDS와 연결된 보안 그룹 선택 후에 인바운드 규칙 편집해줍니다.
- 규칙 추가: 유형 MYSQL/Aurora, 소스 Anywhere-IPv4 (0.0.0.0/0) 후 저장해줍니다.
운영 서버에서는 IP 제한이 필요합니다. 개발용일 경우만 0.0.0.0/0 허용하세요.
같은 보안 그룹을 가진 EC2에서만 접속을 허용해 주는 것이 일반적입니다.
RDS 접속 테스트 (MobaXterm or SSH)
mysql -h <엔드포인트주소> -u admin -p
접속이 성공하면 RDS 연결까지 완료된 것입니다!
🧭 다음 글 안내
이 글은 AWS 기반 Django 배포의 1단계입니다. 탄탄하게 인프라를 쌓아두면, 배포는 더 쉬워집니다. 지금부터 하나씩 실습하며 따라와보세요!
👉 다음 글에서는 MobaXterm으로 EC2에 Django 프로젝트 배포 방법을 정리합니다.
[AWS] 웹 애플리케이션 배포하기 (EC2)
📘 [2편: MobaXterm으로 EC2에 Django 프로젝트 배포하기]📌 이 글은 AWS EC2 인스턴스에 배포할 Django 프로젝트를 MobaXterm을 이용해 원격 접속하고 설정하는 실습형 가이드입니다.앞선 글에서 EC2와 RDS
gnaaak.tistory.com
언제나처럼 — 시작은 삽질이지만, 끝은 지식입니다.