+------------------+
| AWS Cloud |
| +-----------+ |
| | EC2 | |
| | (o o) | |
| | / \_ | |
| +-----------+ |
| ^ |
| | Network |
| | |
+------+-----------+
|
+------+-----------+
| Your Computer |
+------------------+
서버를 운영하고 싶은데, 비싼 하드웨어 구매와 복잡한 초기 설정 때문에 망설인 적 있으신가요? 개발자라면 누구나 한 번쯤 "내 코드를 돌릴 서버 한 대만 있으면 좋겠다"라고 생각해 봤을 겁니다. 만약 클릭 몇 번으로 고성능 컴퓨터를 빌리고, 사용한 만큼만 비용을 낼 수 있다면 어떨까요?
⚡ TL;DR
이 글에서는 AWS의 핵심 서비스인 EC2가 무엇인지 알아보고, 직접 나만의 가상 서버를 만드는 전 과정을 다룹니다. 이 글을 다 읽으면, 당신도 클라우드 위에 원하는 서버를 구축하고 운영할 수 있게 될 겁니다.
목차
- 배경: 왜 물리 서버 대신 EC2를 선택할까?
- 핵심 개념: EC2를 구성하는 필수 요소들
- 실습: 내 손으로 만드는 첫 EC2 인스턴스
- 모범 사례: EC2, 비용은 줄이고 성능은 높이는 법
- 마치며 & 참고자료
1. 배경: 왜 물리 서버 대신 EC2를 선택할까?
과거에는 웹사이트나 애플리케이션을 배포하려면 직접 물리 서버를 구매하고, IDC(인터넷 데이터 센터)에 입주시켜야 했습니다. 이는 높은 초기 비용과 지속적인 유지보수 부담을 의미했죠. 하지만 클라우드 컴퓨팅의 등장으로 패러다임이 바뀌었습니다[2][4]. AWS EC2는 이러한 문제를 해결하기 위해 등장한 서비스입니다.
✅ 핵심 용어 정리
- Amazon EC2 (Elastic Compute Cloud): AWS 클라우드에서 필요에 따라 컴퓨팅 용량을 조절하여 사용할 수 있는 가상 서버 호스팅 서비스입니다[1][2]. 하드웨어 선구매 없이 애플리케이션을 빠르게 개발하고 배포할 수 있게 해줍니다[2][4].
- 가상 서버 (Virtual Server): 물리적인 하드웨어를 소프트웨어적으로 분할하여 여러 개의 서버처럼 사용할 수 있도록 만든 것입니다[2][5]. EC2 인스턴스가 바로 이 가상 서버에 해당합니다[5].
- 온디맨드 (On-demand): 필요할 때 필요한 만큼만 컴퓨팅 자원을 빌려 쓰고, 사용한 만큼만 비용을 지불하는 방식입니다[2][4]. 갑작스러운 트래픽 증가에도 유연하게 대처할 수 있습니다[2].
2. 핵심 개념: EC2를 구성하는 필수 요소들
Amazon EC2는 운영체제, CPU, 메모리 등이 포함된 하나의 완벽한 컴퓨터를 클라우드 환경에서 대여하는 서비스입니다[3].
EC2 인스턴스를 생성하는 것은 단순히 가상머신 하나를 켜는 것 이상입니다. 여러 구성 요소들이 유기적으로 결합하여 하나의 완벽한 서버 환경을 만듭니다.
- 인스턴스 (Instance)
AWS 클라우드에서 실행되는 가상 서버 그 자체를 의미합니다[4][5]. 인스턴스는 다양한 '유형(Type)'과 '크기(Size)'로 나뉩니다[2][3]. 예를 들어,t2.micro
는 범용 목적의 소형 인스턴스를,m5a.xlarge
는 AMD 프로세서 기반의 5세대 범용 인스턴스를 의미합니다[3]. 어떤 인스턴스 유형을 선택하느냐에 따라 CPU, 메모리, 스토리지, 네트워크 성능이 결정됩니다[2]. - AMI (Amazon Machine Image)
인스턴스를 시작하는 데 필요한 정보를 담은 템플릿입니다[4]. 운영체제(Linux, Windows 등), 런타임, 애플리케이션 서버 등 필요한 소프트웨어가 미리 구성된 이미지입니다[3][5]. 하나의 AMI로 여러 개의 동일한 인스턴스를 복제하여 실행할 수 있습니다[3]. - EBS (Elastic Block Store)
EC2 인스턴스에 장착하여 사용하는 가상 저장 장치로, 영구적인 데이터 스토리지 역할을 합니다[3][4]. 컴퓨터의 하드디스크나 SSD와 같다고 생각하면 쉽습니다[3]. 인스턴스를 중지하거나 종료해도 EBS 볼륨의 데이터는 삭제되지 않고 유지됩니다[3][4]. - 보안 그룹 (Security Group)
인스턴스로 들어오고 나가는 트래픽을 제어하는 가상 방화벽입니다[4][6]. 특정 IP 주소에서 오는 SSH(22번 포트) 트래픽만 허용하거나, 모든 사용자에게 HTTP(80번 포트) 접근을 허용하는 등의 규칙을 설정할 수 있습니다[6]. - 키 페어 (Key Pair)
인스턴스에 안전하게 로그인하기 위한 보안 자격 증명입니다[4]. 공개 키(Public Key)는 AWS가 인스턴스에 저장하고, 개인 키(Private Key)는 사용자가 다운로드하여 안전하게 보관해야 합니다[4][5]. 이 개인 키 파일(.pem)이 없으면 서버에 접속할 수 없습니다.
3. 실습: 내 손으로 만드는 첫 EC2 인스턴스
이제 개념을 익혔으니 직접 EC2 인스턴스를 만들어 보겠습니다. AWS 프리 티어를 이용하면 비용 부담 없이 실습할 수 있습니다[5].
① 인스턴스 생성 시작
- AWS Management Console에 로그인한 후, 서비스 검색창에서 'EC2'를 검색하여 EC2 대시보드로 이동합니다.
- "인스턴스 시작" 버튼을 클릭하여 생성 과정을 시작합니다[6].
② AMI 및 인스턴스 유형 선택
- Amazon Machine Image (AMI) 선택: 원하는 운영체제를 선택합니다. 초보자에게는
Amazon Linux 2
또는Ubuntu Server
가 무난합니다. 이는 서버의 기본 OS를 결정하는 단계입니다[3]. - 인스턴스 유형 선택: 서버의 사양(CPU, 메모리)을 선택합니다. 프리 티어로 사용 가능한
t2.micro
를 선택합니다[3].
③ 키 페어 생성 및 네트워크 설정
- 키 페어: '새 키 페어 생성'을 선택하고 이름을 지정한 후 키 페어를 생성하고 다운로드합니다. 이
.pem
파일은 절대 잃어버리면 안 됩니다[5]. - 네트워크 설정: '편집' 버튼을 눌러 보안 그룹을 설정합니다[6].
- 보안 그룹 이름:
my-first-server-sg
와 같이 식별하기 쉬운 이름을 지정합니다. - 인바운드 규칙:
SSH
: 내 IP 주소에서만 접속할 수 있도록 설정하여 보안을 강화합니다.HTTP
/HTTPS
: 웹 서버를 운영할 경우 '위치 무관'으로 설정하여 모든 사용자가 접속할 수 있게 합니다.
- 보안 그룹 이름:
④ 스토리지 구성 및 인스턴스 시작
- 스토리지 구성: 기본적으로 OS가 설치될 EBS 볼륨이 설정됩니다[3]. 프리 티어에서는 최대 30GB까지 무료로 사용할 수 있으므로 기본값으로 두거나 필요에 따라 조정합니다.
- 모든 설정이 완료되면 "인스턴스 시작" 버튼을 클릭합니다. 몇 분 안에 가상 서버 생성이 완료됩니다[1].
⑤ 인스턴스 연결
- 생성된 인스턴스를 선택하고 '연결' 버튼을 클릭합니다.
- SSH 클라이언트 탭에 있는 예시 명령어를 복사하여 터미널(macOS)이나 PuTTY(Windows)에 붙여넣고 실행하면 서버에 접속할 수 있습니다.
-
# 예시 명령어 (실제 값은 AWS 콘솔에서 확인) ssh -i "your-key-pair-name.pem" ec2-user@ec2-xx-xx-xx-xx.compute-1.amazonaws.com
- 접속에 성공하면 터미널에 Amazon Linux 환영 메시지가 나타납니다. 이제 당신만의 서버가 생긴 것입니다!
4. 모범 사례: EC2, 비용은 줄이고 성능은 높이는 법
EC2는 유연한 만큼, 어떻게 사용하느냐에 따라 비용이 크게 달라질 수 있습니다.
구매 옵션 활용하기
옵션 | 장점 | 주의점 및 용도 |
---|---|---|
온디맨드 인스턴스 | 약정 없이 사용한 만큼만 지불, 가장 유연함 | 장기 사용 시 비용이 상대적으로 높음. 개발/테스트, 단기 프로젝트에 적합[1][2] |
스팟 인스턴스 | AWS의 유휴 컴퓨팅 자원을 활용하여 최대 90% 저렴 | AWS가 자원이 필요하면 인스턴스가 중단될 수 있음. 이미지 렌더링, 빅데이터 분석 등 중단돼도 괜찮은 작업에 적합[1][3] |
Savings Plans | 1년 또는 3년 약정으로 온디맨드 대비 상당한 할인 | 꾸준한 사용량이 예측될 때 유리함. 안정적인 프로덕션 워크로드에 적합[1] |
비용 최적화 팁
- 인스턴스 중지: 사용하지 않는 인스턴스는 반드시 '중지(Stop)' 상태로 두세요. 인스턴스가 실행 중일 때만 요금이 부과되므로 상당한 비용을 절약할 수 있습니다[3].
- EBS 및 탄력적 IP 확인: 인스턴스를 중지해도 연결된 EBS 볼륨과 탄력적 IP 주소는 계속 요금이 청구될 수 있으니 불필요한 리소스는 삭제해야 합니다[3].
- 적정 사양 선택: 워크로드에 맞는 인스턴스 타입을 선택하여 불필요한 오버-프로비저닝을 피하세요[3].
5. 마치며 & 참고자료
이 글을 통해 AWS EC2의 기본 개념부터 직접 인스턴스를 생성하고, 현명하게 사용하는 방법까지 알아보았습니다.
- EC2는 복잡한 하드웨어 관리 없이 누구나 쉽게 가상 서버를 만들고 운영할 수 있게 해주는 강력한 도구입니다.
- 인스턴스, AMI, EBS, 보안 그룹 등 핵심 구성 요소의 역할을 이해하는 것이 EC2를 제대로 활용하는 첫걸음입니다.
- 다양한 구매 옵션과 비용 최적화 전략을 통해 합리적인 가격으로 클라우드 인프라를 운영할 수 있습니다.
이제 여러분의 프로젝트를 AWS EC2 위에 올려보세요. 작은 토이 프로젝트라도 직접 배포해보는 경험은 여러분을 한 단계 더 성장시켜 줄 것입니다.
❤️ 이 글이 도움이 되셨다면 하트와 댓글 부탁드립니다!
참고자료
- Amazon EC2 공식 홈페이지[1]
- Amazon EC2 설명서: Amazon EC2란 무엇인가요?[2]
- Amazon EC2 시작하기 자습서[5]
[1] https://aws.amazon.com/ko/ec2/
[2] https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/concepts.html
[3] https://velog.io/@server30sopt/AWS-EC2-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A6%AC
[4] https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html
[5] https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/EC2_GetStarted.html
[6] https://byunsw4.tistory.com/7
[7] https://www.youtube.com/watch?v=Pv2yDJ2NKQA
'600===Dev AWS > EC2' 카테고리의 다른 글
How does the pricing of Amazon EBS volumes vary based on the volume type? (0) | 2024.06.11 |
---|---|
EC2 Pricing Policy (0) | 2024.06.11 |
EC2 Introduced (0) | 2024.05.29 |