AWS(Amazon Web Services)에서 가상 서버를 구축할 때 가장 기본이 되는 서비스가 EC2(Elastic Compute Cloud)입니다. 하지만 EC2 인스턴스를 처음 생성하면 서버를 재부팅하거나 중지 후 시작할 때마다 공인 IP 주소가 계속 변경되는 문제를 겪게 됩니다.
웹 서버 운영이나 도메인 연결을 안정적으로 유지하려면 언제나 변하지 않는 고정 공인 IP(Elastic IP, 탄력적 IP) 할당이 필수적입니다. 이 글에서는 EC2 인스턴스 생성부터 탄력적 IP 연결, SSH 접속 테스트, 그리고 많은 입문자가 놓치기 쉬운 AWS IPv4 과금 정책 및 미사용 IP 방치 비용 방지법까지 명확하게 정리해 드립니다.
목차
- 1. EC2 기본 퍼블릭 IP와 탄력적 IP(Elastic IP)의 차이점
- 2. AWS EC2 인스턴스 생성 단계별 가이드
- 3. 탄력적 IP(Elastic IP) 할당 및 EC2 연결 방법
- 4. 서버 접속 테스트 (SSH 및 브라우저 연결)
- 5. 초보자가 반드시 알아야 할 비용 함정과 과금 방지 수칙
- 6. 자주 묻는 질문 (FAQ)
- 7. 결론 및 요약 체크리스트

1. EC2 기본 퍼블릭 IP와 탄력적 IP(Elastic IP)의 차이점
EC2 인스턴스를 시작할 때 AWS가 자동으로 부여하는 기본 퍼블릭 IPv4 주소는 동적 IP입니다. 즉, 인스턴스를 ‘중지(Stop)’했다가 다시 ‘시작(Start)’하면 기존 IP는 AWS 주소 풀로 반환되고 새로운 IP가 임의로 배정됩니다.
이로 인해 DNS 레코드에 도메인을 연결해 두었거나 외부 API 방화벽에 IP를 등록해 둔 경우, 서버 재시작 시 서비스 접속이 끊어지는 문제가 발생합니다. 이를 해결하기 위해 계정에 영구적으로 귀속되는 고정 공인 IP인 탄력적 IP(Elastic IP, EIP)를 사용합니다.
| 구분 | 기본 퍼블릭 IPv4 (Auto-assigned) | 탄력적 IP (Elastic IP) |
|---|---|---|
| IP 고정 여부 | 인스턴스 중지/시작 시 변경됨 | 명시적으로 연결을 해제하거나 반환하기 전까지 영구 고정 |
| 주요 용도 | 임시 테스트, 아웃바운드 인터넷 통신 | 웹 서비스 운영, 도메인 연결(A 레코드), 고정 방화벽 연동 |
| 서버 변경 시 유연성 | 서버가 교체되면 IP도 완전히 바뀜 | 새 인스턴스로 IP를 즉시 재연결 가능 |
| 과금 유의사항 | 사용 시간 기준 IPv4 요금 부과 | 실행 중인 인스턴스에 1개 연결 시 무료(IPv4 기본료 별도), 미연결 방치 시 유휴 비용 발생 |

2. AWS EC2 인스턴스 생성 단계별 가이드
AWS 매니지먼트 콘솔에 로그인한 뒤 상단 리전(Region)이 아시아 태평양(서울) ap-northeast-2로 설정되어 있는지 확인합니다. 이후 EC2 대시보드로 이동하여 생성을 진행합니다.
단계 1: 인스턴스 이름 및 OS 이미지(AMI) 선택
EC2 대시보드에서 [인스턴스 시작(Launch Instance)] 버튼을 클릭합니다.
- 이름(Name): 용도를 식별할 수 있는 이름(예: my-web-server)을 입력합니다.
- 애플리케이션 및 OS 이미지(AMI): 실습 및 범용 서버로는 Amazon Linux 2023 AMI 또는 Ubuntu 24.04 LTS를 권장합니다. ‘프리 티어 사용 가능(Free tier eligible)’ 배지가 붙어 있는지 확인합니다.
단계 2: 인스턴스 유형(Instance Type) 선택
신규 가입자 대상 AWS 프리 티어 혜택을 받으려면 t2.micro 또는 t3.micro를 선택합니다. 서울 리전의 경우 기본적으로 t2.micro(1 vCPU, 1 GiB 메모리)가 프리 티어 대상에 포함됩니다.
단계 3: 키 페어(Key Pair) 설정
SSH 프로토콜로 인스턴스 셸에 안전하게 접속하기 위해 암호화 키가 필요합니다.
- 기존 키 페어가 없다면 [새 키 페어 생성]을 클릭합니다.
- 키 페어 이름 입력 후, 유형은 RSA, 파일 형식은 OpenSSH(터미널, VS Code, Mac)용인 .pem(또는 구형 PuTTY 전용인 경우 .ppk)을 선택합니다.
- 생성 시 다운로드되는 .pem 파일은 재다운로드가 불가능하므로 안전한 경로에 보관해야 합니다.
단계 4: 네트워크 설정 및 보안 그룹(Security Group) 구성
보안 그룹은 EC2로 유입되는 트래픽(Inbound)과 나가는 트래픽(Outbound)을 통제하는 가상 방화벽입니다.
- SSH 트래픽 허용 (포트 22): 서버 원격 접속용입니다. 보안을 위해 ‘위치 무관(0.0.0.0/0)’보다는 내 IP(My IP)로 설정하는 것을 적극 권장합니다.
- 인터넷에서 HTTP/HTTPS 트래픽 허용 (포트 80, 443): 웹 서버를 운영할 계획이라면 해당 체크박스를 활성화합니다.
단계 5: 스토리지(EBS) 구성 및 시작
기본 루트 볼륨(gp3 또는 gp2)의 크기를 설정합니다. 프리 티어 계정은 월 최대 30GiB의 범용(SSD) 스토리지까지 무료로 제공되므로, 필요에 따라 8GiB~30GiB 범위 내에서 지정한 뒤 [인스턴스 시작]을 클릭합니다.

3. 탄력적 IP(Elastic IP) 할당 및 EC2 연결 방법
인스턴스가 ‘실행 중(Running)’ 상태가 되면 고정 공인 IP를 발급받아 인스턴스에 매핑해야 합니다.
작업 핵심 요약: 탄력적 IP를 발급(Allocate)받은 후, 반드시 실행 중인 EC2 인스턴스에 연결(Associate)해야 유휴 IP 방치 과금을 피할 수 있습니다.
단계 1: 새 탄력적 IP 주소 할당
- 좌측 탐색 창의 [네트워크 및 보안] 메뉴에서 [탄력적 IP(Elastic IPs)]를 선택합니다.
- 우측 상단의 [탄력적 IP 주소 할당(Allocate Elastic IP address)] 버튼을 클릭합니다.
- 네트워크 경계 그룹(ap-northeast-2) 및 Amazon의 IPv4 주소 풀을 기본값 그대로 두고 [할당]을 클릭합니다.
- 목록에 새로운 공인 IPv4 주소가 생성된 것을 확인합니다.
단계 2: 탄력적 IP를 EC2 인스턴스에 연결
- 방금 할당받은 탄력적 IP 항목을 선택한 후 우측 상단의 [작업(Actions)] → [탄력적 IP 주소 연결(Associate Elastic IP address)]을 클릭합니다.
- 리소스 유형: [인스턴스]를 선택합니다.
- 인스턴스: 입력창을 클릭하여 앞서 생성한 EC2 인스턴스를 선택합니다.
- 프라이빗 IP 주소: 해당 인스턴스의 주 프라이빗 IP를 선택합니다.
- 하단의 [연결(Associate)] 버튼을 클릭합니다.
연결이 완료되면 EC2 인스턴스 세부 정보 페이지의 ‘퍼블릭 IPv4 주소’와 ‘탄력적 IP 주소’ 항목이 동일한 고정 IP로 갱신된 것을 확인할 수 있습니다.
4. 서버 접속 테스트 (SSH 및 브라우저 연결)
할당된 탄력적 IP를 통해 로컬 컴퓨터 터미널에서 EC2 인스턴스에 접속합니다.
1) 키 페어 권한 설정 (Linux / macOS / Windows PowerShell)
키 파일의 보안 권한이 너무 열려 있으면 SSH 클라이언트가 접속을 차단합니다. 터미널을 열고 키가 저장된 디렉터리로 이동하여 소유자 읽기 전용 권한을 부여합니다.
chmod 400 your-key.pem
2) SSH 접속 명령 실행
AMI 유형에 따라 기본 접속 사용자 이름(User)이 다릅니다.
- Amazon Linux 2023: ec2-user
- Ubuntu: ubuntu
터미널에 다음 명령어를 입력합니다.
ssh -i “your-key.pem” ec2-user@탄력적-IP-주소
접속 여부를 묻는 메시지가 나오면 yes를 입력합니다. 프롬프트가 변경되며 인스턴스 내부 셸로 진입하면 정상적으로 연결된 것입니다.
5. 초보자가 반드시 알아야 할 비용 함정과 과금 방지 수칙
AWS 클라우드를 처음 다루는 사용자들이 가장 자주 겪는 과금 문제는 IPv4 정책 변경과 유휴 탄력적 IP에서 발생합니다.
⚠️ 비용 주의사항 체크:
- 공인 IPv4 요금: AWS는 모든 퍼블릭 IPv4 주소에 대해 시간당 $0.005의 비용을 부과합니다. (EC2 프리 티어 이용 시 계정당 매월 750시간 분량의 인스턴스 연결 공인 IPv4 주소 무료 제공)
- 미연결 탄력적 IP 과금: 탄력적 IP를 할당받아 두고 인스턴스에 연결하지 않거나, 연결된 인스턴스를 ‘중지’한 상태로 방치하면 IPv4 자원 낭비 방지 정책에 따라 시간당 $0.005(월 약 $3.6)가 즉시 청구됩니다.
사용하지 않는 리소스 정리 절차
실습이 끝났거나 더 이상 고정 IP가 필요하지 않다면 반드시 다음 순서로 리소스를 해제해야 추가 과금을 막을 수 있습니다.
- 탄력적 IP 연결 해제: [탄력적 IP] 목록 → 작업 → [탄력적 IP 주소 연결 해제(Disassociate)]
- 탄력적 IP 주소 릴리스(삭제): 연결 해제 상태에서 작업 → [탄력적 IP 주소 릴리스(Release Elastic IP address)]를 반드시 실행하여 AWS에 주소를 반환합니다. (릴리스하지 않으면 미연결 상태로 계속 과금됩니다.)
- EC2 인스턴스 종료: 더 이상 쓰지 않는 서버는 ‘중지’가 아닌 [인스턴스 종료(Terminate)]를 수행하여 연결된 EBS 볼륨까지 완전 삭제합니다.
6. 자주 묻는 질문 (FAQ)
Q. 탄력적 IP는 무료인가요?
실행 중인 1개의 EC2 인스턴스에 1개의 탄력적 IP를 연결해 사용하는 경우 EIP 자체에 대한 추가 페널티 비용은 없습니다. 단, 퍼블릭 IPv4 기본 사용 요금(시간당 $0.005)은 적용되며(프리티어 한도 내 공제 가능), 인스턴스를 중지하거나 연결하지 않은 채 주소만 점유하고 있으면 유휴 요금이 부과됩니다.
Q. SSH 접속 시 ‘Connection timed out’ 에러가 발생합니다.
인스턴스에 연결된 보안 그룹(Security Group)의 인바운드 규칙을 확인해야 합니다. 포트 22(SSH)가 열려 있는지, 접속을 시도하는 현재 컴퓨터의 공인 IP가 소스(Source)에 허용되어 있는지 검토하세요. 네트워크 ACL이나 서브넷의 라우팅 테이블(인터넷 게이트웨이 연결 여부)도 함께 점검해야 합니다.
Q. EC2 인스턴스를 중지(Stop)하면 탄력적 IP 연결은 어떻게 되나요?
인스턴스가 중지되어도 탄력적 IP와의 연결 관계 자체는 유지됩니다. 하지만 연결된 인스턴스가 실행(Running) 상태가 아니므로 해당 IP는 ‘유휴 IP’로 간주되어 시간당 과금이 시작됩니다. 장기 보관 목적이라면 EIP를 릴리스하고 서버를 유지하는 것이 비용상 안전합니다.
Q. 인스턴스 하나에 탄력적 IP를 여러 개 연결할 수 있나요?
네, 보조 프라이빗 IP나 별도의 네트워크 인터페이스(ENI)를 추가하여 여러 개의 탄력적 IP를 매핑할 수 있습니다. 단, 인스턴스당 1개를 초과하는 추가 탄력적 IP는 인스턴스가 실행 중이더라도 추가 요금이 부과됩니다.
7. 결론 및 요약 체크리스트
AWS EC2와 탄력적 IP 연결은 클라우드 인프라 운영의 첫걸음입니다. 안정적인 서비스 운영을 위해 아래 3가지 핵심 수칙을 반드시 기억하세요.
- 서버 IP가 바뀌지 않아야 하는 운영 환경에서는 인스턴스 생성 후 즉시 탄력적 IP(Elastic IP)를 할당 및 연결합니다.
- 보안 그룹 인바운드 규칙에서 SSH(22번 포트)는 불특정 다수(0.0.0.0/0)에게 개방하지 않고 본인 IP로 제한합니다.
- 서버를 중지하거나 삭제할 때는 탄력적 IP 릴리스(Release)를 함께 수행하여 미사용 IP로 인한 유휴 과금을 방지합니다.