600===Dev AWS/EC2

🚀 AWS EC2 완전 정복: 5분 만에 나만의 클라우드 서버 갖기

블로글러 2024. 10. 31. 00:47
      +------------------+
      |   AWS Cloud      |
      |  +-----------+   |
      |  |  EC2      |   |
      |  | (o o)     |   |
      |  |  / \_     |   |
      |  +-----------+   |
      |      ^           |
      |      | Network   |
      |      |           |
      +------+-----------+
             |
      +------+-----------+
      |   Your Computer  |
      +------------------+

 

서버를 운영하고 싶은데, 비싼 하드웨어 구매와 복잡한 초기 설정 때문에 망설인 적 있으신가요? 개발자라면 누구나 한 번쯤 "내 코드를 돌릴 서버 한 대만 있으면 좋겠다"라고 생각해 봤을 겁니다. 만약 클릭 몇 번으로 고성능 컴퓨터를 빌리고, 사용한 만큼만 비용을 낼 수 있다면 어떨까요?

 

TL;DR
이 글에서는 AWS의 핵심 서비스인 EC2가 무엇인지 알아보고, 직접 나만의 가상 서버를 만드는 전 과정을 다룹니다. 이 글을 다 읽으면, 당신도 클라우드 위에 원하는 서버를 구축하고 운영할 수 있게 될 겁니다.


목차

  1. 배경: 왜 물리 서버 대신 EC2를 선택할까?
  2. 핵심 개념: EC2를 구성하는 필수 요소들
  3. 실습: 내 손으로 만드는 첫 EC2 인스턴스
  4. 모범 사례: EC2, 비용은 줄이고 성능은 높이는 법
  5. 마치며 & 참고자료

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].

 

① 인스턴스 생성 시작

  1. AWS Management Console에 로그인한 후, 서비스 검색창에서 'EC2'를 검색하여 EC2 대시보드로 이동합니다.
  2. "인스턴스 시작" 버튼을 클릭하여 생성 과정을 시작합니다[6].

② AMI 및 인스턴스 유형 선택

  1. Amazon Machine Image (AMI) 선택: 원하는 운영체제를 선택합니다. 초보자에게는 Amazon Linux 2 또는 Ubuntu Server가 무난합니다. 이는 서버의 기본 OS를 결정하는 단계입니다[3].
  2. 인스턴스 유형 선택: 서버의 사양(CPU, 메모리)을 선택합니다. 프리 티어로 사용 가능한 t2.micro를 선택합니다[3].

③ 키 페어 생성 및 네트워크 설정

  1. 키 페어: '새 키 페어 생성'을 선택하고 이름을 지정한 후 키 페어를 생성하고 다운로드합니다. 이 .pem 파일은 절대 잃어버리면 안 됩니다[5].
  2. 네트워크 설정: '편집' 버튼을 눌러 보안 그룹을 설정합니다[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

728x90
반응형

'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