[AWS] 그래서 EC2가 뭐야?

이태현·2024년 7월 14일
0

AWS를 배워보자

목록 보기
4/4

이 글은 유튜브 AWS 강의실 채널의 "쉽게 설명하는 AWS 기초강좌"의 내용을 정리한 글입니다

EC2 소개

Amazon Elastic Compute Cloud(Amazon EC2)는 Amazon Web Services(AWS) 클라우드에서 온디맨드 확장 가능 컴퓨팅 용량을 제공합니다. Amazon EC2를 사용하면 하드웨어 비용이 절감되므로 애플리케이션을 더욱 빠르게 개발하고 배포할 수 있습니다. Amazon EC2를 사용하여 원하는 수의 가상 서버를 구축하고 보안 및 네트워킹을 구성하며 스토리지를 관리할 수 있습니다. 용량을 추가(스케일 업)하여 월간 또는 연간 프로세스 또는 웹 사이트 트래픽 급증 등 컴퓨팅 사용량이 많은 작업을 처리할 수 있습니다. 사용량이 감소하면 용량을 다시 축소(스케일 다운)할 수 있습니다.
-> aws에서 말하는 EC2

EC2를 사용하는 경우

  • 서버를 구축할 때
    • 게임서버, 웹서버, 어플리케이션 서버
  • 어플리케이션을 사용하거나 호스팅 할 때
    • 데이터베이스, 머신러닝, 비트코인 채굴, 연구용 프로그램

EC2의 특성

  • 초 단위 온디맨드 가격 모델
    • 온디맨드 모델에서는 가격이 초(sec)단위로 결정
      • 온디맨드 : 사용한 만큼 할인 없이 비용을 지불하는 것
    • 서비스 요금을 미리 약정하거나 선입금이 필요 없음
  • 빠른 구축 속도와 확장성
    • 몇 분이면 전 세계에 인스턴스 수백여대를 구축 가능
    • 다양한 과금 모델 사용 가능 (웹, 게임, 이미지 서버 등등)
  • 여러 AWS 서비스와 연동
    • 오토스케일링, Elastic Load Balancer(ELB), CloudWatch

EC2의 구성

  • 인스턴스
    • 클라우에서 사용하는 가상 서버로 CPU, 메모리, 그래픽카드 등 연산을 위한 하드웨어를 담당
  • EBS (Elastic Block Storage)
    • 클라우드에서 사용하는 가상 하드디스크
  • AMIs (Amazon Machine Images)
    • EC2 인스턴스를 실행하기 위한 정보를 담고 있는 이미지
  • 보안 그룹
    • 가상의 방화벽

EC2 한대를 프로비전하여 웹 서버 구성하기

  1. EC2를 구성하기 위한 AMI 선택
  2. EC2의 유형과 사이즈 선택
  3. EBS 설정
  4. 보안 그룹 설정
  5. EC2 생성
  6. EC2 접속 후 웹 서버 설치 및 웹 서버 실행
  7. 웹 브라우저에서 접속 테스트

EC2 인스턴스를 생성해보자 (Amazon Linux os)

  1. AWS 검색창에 EC2를 검색
  2. Instances (running) 클릭

  1. Launch instances 클릭
  • 저는 이미 만든 인스턴스가 있기 때문에 아래처럼 인스턴스가 보입니다
  • 처음에는 아무것도 뜨지 않는 것이 맞습니다

  1. 인스턴스 설정
  • 여기서는 아마존에서 제공하는 기본 linux os를 설치합니다

4.1. key pair 설정

  • 설정 이유 : 보안적인 이유로 설정하며, 키페어는 두개의 암호화 키(공개키, 비밀키)로 구성되어 있으며, 이를 사용하여 EC2 인스턴스에 안전하게 접속할 수 있다

  1. webserver를 동작하기 위한 EC2를 생성하므로 http, https를 통한 트래픽을 허용하였다

  1. 이후 우측의 Launch instance를 클릭하면 새 인스턴스가 생성된다

EC2 접속 후 웹 서버 설치 및 웹 서버 실행

  1. Connect를 통해 EC2에 접속

  1. 웹 서버 설치 및 실행

관리자 권한 가져오기
sudo -s

아파치 서버 다운로드
yum install httpd

아파치 서버 실행
service httpd start

아래의 publicIPs의 주소를 chrome에 입력하여 접속하는 경우, 다음의 페이지를 확인할 수 있다

이때, /var/www/html/index.html을 생성한 후에 다시 접속할 경우, 작성한 index.html이 연결된다

nano /var/www/html/index.html

파일 내부에서
hello, world!

control+x
y
enter

인스턴스 중지(stop), 종료(terminate)하기

중지하기 : EBS(하드디스크) 요금은 부과됨
안전하게 종료하는 것을 추천

EC2 가격 모델

  • On-Demand

    • 실행하는 인스턴스에 따라 시간 또는 초당 컴퓨팅 파워로 측정된 가격을 지불
      • 아마존 리눅스는 초당, redhat 리눅스는 시간당으로 계산
    • 약정이 필요 없음
    • 장기적인 수요 예측이 힘들거나 유연하게 EC2를 사용하고 싶을 떄
    • 한번 써보고 싶을 때
  • 예약 인스턴스(Reserved Instance-RI)

    • 미리 일정기간(1년 or 3년)을 약정해서 쓰는 방식
    • On-Demand에 비해 최대 75% 저렴
    • 수요 예측이 확실할 때
    • 총 비용 절감하기 위해 어느정도 기간의 약정이 가능한 사용자
  • Spot Instance

    • 경매 형식으로 시작에 남는 인스턴스를 저렴하게 구매해서 사용하는 방식
    • 최대 90%정도 저렴
    • 단 언제 도로 내줘야 하는지 모름
    • 시작, 종료가 자유롭거나 추가적인 컴퓨팅 파워가 필요한 경우
    • 사용자가 지정한 가격보다 현재 가격이 낮다면 사용, 높아졌다면 반환
    • 인스턴스가 확보되고 종료되는 것을 반복해도 문제 없는 분상 아키텍처가 필요
    • 주로 빅데이터 처리, ML등 많은 인스턴스가 필요한 작업에 사용
  • 전용 호스트(Dedicated)

    • 실제 물리적인 서버를 임대하는 형식
    • 라이센스 이슈(Windows Server)
    • 규정에 따라 필요한 경우
    • 퍼포먼스 이슈(CPU Steal)
      • CPU Steal : 아무리 서버 가상화하여 일부를 임대하더라도 옆의 cpu가 많은 자원을 소모하면, 내가 빌린 cpu의 성능이 떨어질 수 있다
      • 정확한 CPU 성능이 요구되는 작업이 필요할 경우 물리적 서버를 빌린다

가격 순서

  • 스팟 인스턴스 < 예약 인스턴스 < 온디맨드 < 전용 호스트
  • EC2의 가격 모델은 EBS와는 별도
    • EBS는 사용한 만큼 지불
    • EBS : 가상의 하드 드라이브
  • 기타 데이터 통신등의 비용은 별도 청구
    • 참고로 AWS는 바깥으로 나가는 트래픽에 대해서만 요금을 부과

EC2의 유형과 사이즈

인스턴스의 유형

  • 각 인스턴스 별로 사용 목적에 따라 최적화
    • 예) 메모리 위주, cpu 위주, 그래픽카드 위주
  • 타입 별로 이름 부여
    • 예) t타입, m타입, inf타입...
  • 타입 별 세대 별로 숫자 부여
    • 예) m5 = m인스턴스의 5번째 세대
  • 아키텍처 및 사용 기술에 따라 접두사
    • 예) t4g = t4인스턴스 중 AWS Graviton 프로세스를 사용(g)

인스턴스의 크기

  • 인스턴스의 cpu 개수, 메모리 크기, 성능 등으로 사이즈 결정
  • 크기가 클 수록
    • 더많은 메모리, cpu, 네트워크 대역폭, EBS와의 통신 가능한 대역폭

EC2의 생명주기

  • 중지
    • 중지 중에는 인스턴스 요금 미청구
    • 단, EBS 요금, 다른 구성요소(Elastic IP)은 청구
    • 중지 후 재 시작 시 퍼블릭 IP 변경
    • EBS를 사용하는 인스턴스만 중지 가능, 인스턴스 저장 인스턴스는 중지 불가
  • 재부팅
    • 재부팅시에는 퍼블릭 IP 변동 없음
  • 최대 절전 모드
    • 메모리 내용을 보존해서 재 시작시 중단 지점에서 시작할 수 있는 정지 모드
    • 메모리 내용 -> HDD에 그대로 복사, 재시작시 다시 HDD->메모리 복구>>>>

profile
할까말까 고민된다면, 일단 시작하자!

0개의 댓글