클라우드 컴퓨팅 시대가 도래하면서 이제 집이나 사무실에 무거운 물리 서버를 직접 들여놓지 않고도, 클릭 몇 번만으로 인터넷상에 가상의 서버를 대여할 수 있게 되었습니다. 이러한 인프라 서비스(IaaS) 시장에서 전 세계 글로벌 표준으로 자리 잡은 핵심 서비스가 바로 AWS(Amazon Web Services)의 EC2(Elastic Compute Cloud)입니다.
EC2를 활용하면 내 프로젝트 규모에 꼭 맞는 사양의 리눅스 가상 서버(인스턴스)를 1분 만에 구동할 수 있습니다. 하지만 클라우드 서버는 생성 직후 몇 가지 필수적인 세팅을 거치지 않으면 서버를 껐다 켤 때마다 주소가 바뀌는 등 상용 서비스를 운영하기에 치명적인 문제가 발생합니다. 본 가이드에서는 AWS EC2 인스턴스를 안전하게 생성하는 단계별 절차부터, 고정 주소를 부여하는 ‘탄력적 IP(Elastic IP)’ 연결 방법까지 상세히 정리합니다.
1. AWS EC2 인스턴스 가상 서버 생성 5단계
AWS 계정에 로그인한 뒤, 상단 검색창에 ‘EC2’를 입력하여 대시보드로 이동합니다. 오른쪽 상단의 주황색 ‘인스턴스 시작(Launch Instance)’ 버튼을 누르면 인스턴스 생성 마법사가 시작됩니다.
1단계: 인스턴스 이름 및 OS 선택
- 이름 및 태그: 서버의 용도를 식별할 수 있는 직관적인 이름(예:
my-web-server)을 입력합니다. - 애플리케이션 및 OS 이미지(AMI): 서버의 운영체제를 고르는 단계입니다. 가장 대중적이고 레퍼런스가 방대한 Ubuntu(우분투)를 선택하고, 버전은 롱텀서포트가 지원되는 최신 LTS 버전을 지정하는 것이 안정적입니다.
2단계: 인스턴스 유형 및 키 페어 설정
- 인스턴스 유형: 서버의 CPU와 메모리 스펙을 결정합니다. 개인 실습이나 토이 프로젝트, 블로그 운영 목적이라면 1년 동안 무료로 쓸 수 있는 가성비 스펙인
t2.micro또는t3.micro(프리 티어 사용 가능 표시 확인)를 선택합니다. - 키 페어(로그인): 원격 접속 시 비밀번호 대신 쓸 강력한 보안 열쇠입니다. ‘새 키 페어 생성’을 눌러 이름(예:
my-server-key)을 입력하고 생성하면.pem확장자의 파일이 내 PC에 다운로드됩니다. 이 파일은 절대 분실하거나 외부에 유출해서는 안 됩니다.
3단계: 네트워크 설정 (방화벽 규칙)
- 보안 그룹(Security Group): 서버의 대문을 통제하는 가상 방화벽입니다.
- 기본적으로 내 로컬 PC에서만 서버 원격 터미널에 접속할 수 있도록
SSH 트래픽 허용(22번 포트)의 소스 유형을 ‘내 IP’로 지정하는 것이 안전합니다. - 추후 웹 서비스를 연동할 계획이 있다면
인터넷에서 HTTP(80번) 트래픽 허용및HTTPS(443번) 트래픽 허용체크박스도 함께 활성화해 줍니다.
4단계: 스토리지(디스크 용량) 구성
- 서버의 하드디스크 용량(EBS 볼륨)을 지정하는 단계입니다. AWS 프리 티어 계정은 최대 30GB까지 무료로 제공하므로, 기본값인 8GB를
30으로 변경하여 용량을 넉넉하게 확보해 두는 것이 장기적인 운영에 유리합니다. 볼륨 유형은 속도가 빠른gp3를 권장합니다.
5단계: 인스턴스 시작 및 대기
- 모든 설정을 마쳤다면 오른쪽 하단의 ‘인스턴스 시작’을 누릅니다. 약 1분 정도 지나면 EC2 인스턴스 목록에 내가 만든 서버의 상태가 ‘실행 중’으로 변경되는 것을 볼 수 있습니다.
2. 탄력적 IP(Elastic IP) 개념과 고정 IP가 필수인 이유
성공적으로 생성된 EC2 인스턴스의 상세 내역을 보면 ‘퍼블릭 IPv4 주소’라는 임시 도메인 형태의 숫자가 부여된 것을 확인할 수 있습니다. 당장 접속하는 데는 무리가 없지만, 이 주소에는 클라우드 서버 특유의 결정적인 함정이 숨어 있습니다.
AWS EC2에 기본 할당되는 퍼블릭 IP는 ‘동적 IP’입니다. 즉, 업데이트나 설정 변경을 위해 인스턴스를 ‘중지’했다가 다시 ‘시작’하면, AWS 시스템이 새로운 무작위 IP 주소를 다시 할당해 버립니다.
만약 가비아 등에서 도메인을 사서 이 주소에 연결해 두었거나, 백엔드 애플리케이션 코드를 연동해 두었다면 서버를 리부팅할 때마다 주소가 끊어져 서비스 전체가 마비되는 대참사가 일어납니다. 따라서 서버의 주소가 평생 바뀌지 않도록 박아두는 고정 IP 서비스인 탄력적 IP(Elastic IP) 매핑이 무조건 선행되어야 합니다.
3. 탄력적 IP 발급 및 EC2 인스턴스 연결 절차
탄력적 IP를 연결하는 과정은 AWS 콘솔 내에서 매우 직관적으로 처리할 수 있습니다.
1단계: 탄력적 IP 주소 할당 요청
- EC2 대시보드 왼쪽 사이드바 메뉴를 아래로 내려 [네트워크 및 보안] 하위의 [탄력적 IP(Elastic IP)] 메뉴를 클릭합니다.
- 오른쪽 상단의 주황색 [탄력적 IP 주소 할당(Allocate Elastic IP address)] 버튼을 누릅니다.
- 별도의 세부 설정 변경 없이 하단의 ‘할당’ 버튼을 누르면 즉시 평생 고정되는 나만의 공인 IP 주소가 하나 발급됩니다.
2단계: 발급된 고정 IP를 EC2 서버에 바인딩
- 방금 생성된 탄력적 IP 주소를 마우스로 체크한 뒤, 우측 상단의 [작업(Actions)] 버튼을 누르고 [탄력적 IP 주소 연결(Associate Elastic IP address)]을 선택합니다.
- 인스턴스: 입력창을 클릭하면 현재 구동 중인 내 EC2 인스턴스 리스트가 뜹니다. 앞서 만든 가상 서버를 선택합니다.
- 프라이빗 IP 주소: 해당 인스턴스의 내부 주소를 선택하는 창입니다. 클릭하면 나오는 기본 프라이빗 IP 주소를 그대로 지정합니다.
- 하단의 주황색 [연결(Associate)] 버튼을 누르면 매핑이 완료됩니다.
다시 EC2 인스턴스 메뉴로 돌아와 내 가상 서버의 상세 정보를 확인해 보면, 퍼블릭 IP 항목이 방금 발급받은 탄력적 IP 주소로 고정되어 깔끔하게 변경된 것을 확인할 수 있습니다. 이제 서버를 백 번, 천 번 껐다 켜도 주소는 절대 바뀌지 않습니다.
4. 청구 폭탄 방지를 위한 탄력적 IP 사용 시 주의사항
AWS의 탄력적 IP는 매우 유용한 고정 IP 서비스이지만, 비용 청구 정책에 있어서 초보자들이 가장 많이 실수하는 ‘비용 트랩’ 요소를 지니고 있습니다.
AWS는 한정된 자원인 IPv4 주소의 낭비를 막기 위해 “탄력적 IP를 만들어 두고 사용 중인 EC2 서버에 연결해 두면 무료”이지만, “서버를 삭제(종료)했거나 중지시켜 놓은 상태에서 탄력적 IP만 덩그러니 남겨두면 비용을 청구”하는 패널티 정책을 취하고 있습니다. 즉, 쓰지도 않는 주소를 붙잡고 공간만 차지하면 페널티 비용을 물리겠다는 뜻입니다.
따라서 만약 공부용으로 만들었던 EC2 인스턴스를 더 이상 쓰지 않아 삭제(인스턴스 종료)할 계획이라면, 반드시 [탄력적 IP] 메뉴로 이동하여 [탄력적 IP 주소 연결 해제]를 먼저 수행한 후, 이어서 주소 자체를 완전히 AWS 시스템에 반납하는 [탄력적 IP 주소 릴리스(Release)]까지 완수해 주어야 향후 억울한 클라우드 비용 청구 폭탄을 방지할 수 있습니다.
결론: 세상에 나만의 서버를 공개할 준비 완료
AWS EC2 가상 서버 인스턴스 생성과 고정 IP인 탄력적 IP 세팅까지 끝마치셨다면, 인터넷 세계에 지어 올릴 내 서비스의 ‘가장 단단하고 영구적인 토지’를 분양받은 셈입니다.
이제 이 고정된 탄력적 IP 주소를 활용하여 도메인 업체 웹사이트에 네임서버 및 A 레코드를 매핑해 두고, 앞서 다루었던 Nginx 웹 서버나 MySQL 데이터베이스를 인프라 내에 단단하게 정착시켜 나가며 여러분만의 고성능 상용 서비스를 본격적으로 가동해 보시기 바랍니다.