[AWS] EC2란? (EC2, EBS, Snapshot..)

김동욱·2023년 9월 19일
0

AWS

목록 보기
3/4

EC2란?

EC2(Amazon Elastic Conpute Cloud)는 안전하고 크기 조정이 가능한 컴퓨팅 파워를 클라우드에서 제공하는 웹 서비스입니다.

= 컴퓨팅을 빌려 쓰는 서비스

EC2를 사용하는 예시

  1. 서버를 구축할 때
    게임서버, 웹서버, 어플리케이션 서버
  2. 어플리케이션을 사용하거나 호스팅할 때
    데이터베이스, 머신 러닝, 비트코인 채굴, 연구용 프로그램
  3. 기타 목적
    그래픽 렌더링, 게임 등

AWS 특징

  • 초 단위 온디맨드 가격 모델 (쓴 만큼 지불)
  • 빠른 구축 속도와 확장성
  • 다양한 구성방법 지원
  • 여러 AWS 서비스와 연동

EC2 구성

  • 인스턴스 : 클라우드에서 사용하는 가상 서버로 CPU, 메모리, 그래픽카드 등 연산을 위한 하드웨어를 담당합니다.

  • EBS : Elastic Block Storage의 줄임말로 클라우드에서 사용하는 가상 하드디스크를 말합니다.

  • AMI: EC2인스턴스를 실행하기 위한 정보를 담고 있는 이미지

  • 보안 그룹 : 가상의 방화벽

웹 서버를 구성하는 간단한 실습

  1. EC2를 구성하기 위한 AMI 선택

EC2 -> 인스턴스 -> 인스턴스 시작
으로 들어가서 애플리케이션 및 OS 이미지를 선택해줍니다.
기본 설정된 Amazon Linux로 선택했습니다.

  1. EC2의 유형과 사이즈 선택

인스턴스 유형또한 기본인 t2.micro로 선택했습니다.

  1. EBS 설정

기본 설정인 8GiB에 gp3 루트 볼륨을 선택했고

  1. 이름 및 태그
    키는 Name, 값은 MyServer로 설정했습니다.
    키 페어 또한 myServerKeyPair로 해줍니다.

  2. 보안 그룹 설정

보안 그룹 규칙을 추가해서 HTTP 유형을 추가해줍니다.

  1. EC2 생성
  2. EC2 접속 후 웹 서버 설치 및 웹 서버 실행
  3. 웹브라우저에서 접속 테스트

sudo -s
root 권한으로 쉘을 실행하는 명령어입니다. (sudo : superuser do) 다른 사용자의 보안 권한으로 명령어를 실행할 수 있게 해줍니다.

yum install httpd -y
웹 서버 소프트웨어인 Apache(Httpd)를 설치하는 명령어입니다. yum은 패키지 관리 도구이고
-y는 모든 질문에 yes로 자동 응답하도록 합니다.

service httpd start
방금 생성한 Apache 웹 서버를 실행합니다.

하단의 PublicIPs 가 실제로 접속할 수 있는 url 주소입니다.
해당 주소에 접속하면 테스트 페이지가 나오게 됩니다.

임의의 index.html 파일을 만들어서 띄우기 위해
nano /var/www/html/index.html 로 들어가면 텍스트 에디터 페이지가 나오게 됩니다.
Hello world! 를 작성 후 Ctrl+X로 저장하고 나가면 저장한 문구가 등장합니다.

인스턴스는 계속해서 요금이 나가기 때문에 실습을 모두 마쳤으면 중지하거나 종료하여 삭제해야합니다. 중지를 해 놓아도 EBS비용은 계속해서 나가기 때문에 안전하게 종료시키는 것이 좋습니다.

EC2의 가격 정책

  1. On-DEmand
  • 실행하는 인스턴스에 따라 시간 또는 초당 컴퓨팅 파워로 측정된 가격을 지불합니다.
  • 약정은 없으며 장기적인 수요예측이 힘들거나 유연하게 EC2를 사용하고 싶을 때 사용합니다.
  1. Spot Instance
  • 경매 형식으로 시장에 남는 인스턴스를 저렴하게 구매해서 쓰는 방식입니다.
  • 최대 90%까지 저렴하며 사용기한을 확정할 수 없기 때문에 시작, 종료가 자유롭거나 추가적인 컴퓨팅 파워가 필요한 경우 사용합니다.
  1. 예약 인스턴스(Reserved Instance-RI)
  • 미리 일정 기간(1년 - 3년) 약정해서 사용하는 방식으로 최대 75% 저렴합니다.
  • 수요 예측이 확실하며 총 비용을 절감하기 위해 어느정도 기간의 약정이 가능한 사용자가 적합합니다.
  1. 전용 호스트 (Dedicated)
  • 실제 물리적인 서버를 임대하는 방식입니다.

  • 보안상의 이유, 보안상의 이유로 사용하며

  • 라이센스 이슈나 퍼포먼스 이슈가 존재합니다.

  • 가격 순
    스팟 < 예약 < 온디맨드 < 전용 호스트

  • EC2의 가격 모델은 EBS와는 별도로 EBS는 사용한 만큼 지불합ㄴ디ㅏ.

  • 기타 데이터 통신 등의 비용은 별도로 청구되며 AWS 바깥으로 나가는 트래픽에 대해서만 요금을 부과합니다. 즉 파일을 업로드 할 땐 비용이 없지만 파일을 다운로드 할 때는 비용이 부과됩니다.
    마찬가지로 내부에서 EC2끼리 통신 또한 비용이 없습니다.

EC2의 유형과 크기

사용 목적에 따라 인스턴스 유형과 사이즈를 결정할 수 있습니다.
즉 각 인스턴스 별로 사용 목적에 따라 최적화해서 사용합니다.
EX) 메모리 위주, CPU 위주, 그래픽카드 위주 등

인스턴스의 CPU갯수, 메모리 크기, 성능 등으로 사이즈가 결정되며
크기가 클수록 성능이 좋습니다.

범용적으로 사용되는 t타입 m타입이 있습니다.


EBS

Amazon Elastic Block Store의 약자로 AWS 클라우드의 Amazon EC2 인스턴스에 사용할 영구 블록 스토리지 볼륨을 제공합니다. 각 Amazon EBS 볼륨은 가용 영역 내에 자동으로 복제되어 구성요소 장애로부터 보호해주고, 고가용성 및 내구성을 제공합니다.

여기서 중요한 점은 EC2 인스턴스에 사용할 영구적인 블록 스토리지 볼륨이라는 말입니다.
즉 가상의 하드 드라이브 기능을 해주며 EC2 인스턴스가 종료되어도 유지됩니다.
EC2와 EBS가 네트워크로 연결되어 있기 때문에 EBS를 변경하고 싶으면 그냥 네트워크를 변경하면 되고 하나의 EC2에 여러 개의 EBS를 붙이고 싶으면 여러 네트워크를 연결해주면 됩니다.

  • 하나의 EBS를 여러 EC2에 장착이 가능하며

  • 루트 볼륨으로 사용시 EC2가 종료되면 같이 삭제됩니다.

  • EC2와 같은 가용 영역에 존재합니다.
    EC2를 생성하고 EBS를 생성한 뒤 서로 연결이 안된다면 서로 다른 가용영역에 있지 않은지 확 인해봐야 합니다.

EBS 종류

snapshot

  • 특정 시간의 EBS 상태를 저장해둔 저장본입니다.
  • EBS에 사진을 찍어 둔 개념입니다.
  • 필요한 스냅샷을 통해 특정 시간의 EBS를 복구 가능합니다.
  • S3에 저장하며 증분식으로 백업해놓습니다.
    - 기존에서 변화된 부분만 snapshot을 찍어놓는 증분식 방식입니다.

AMI (Amazon machine Image)

EC2 인스턴스를 실행하기 위해 필요한 정보를 포함하고 있는 이미지입니다.

1개 이상의 EBS 스냅샷이 필요하며
루트 볼륨에 대한 템플릿이나 (ex. 운영 체제, 애플리케이션 서버, 애플리케이션)
시작 권한을 부여받은 AWS 계정에 대한 정보, 시작 시 사용할 하나 이상의 인스턴스 유형에 대한 블록 디바이스 매핑으로 구성됩니다.

즉 원하는 소프트웨어 구성이 설치된 상태로 EC2 인스턴스를 쉽게 시작할 수 있습니다.

사용 흐름을 보면
EBS의 특정 시점을 스냅샷 찍어서 그 정보를 S3에 저장합니다.
OS, 파일, 시작 권한 등 정보들이 찍혀서 저장되면 그 정보를 AMI로 등록합니다.
등록한 AMI로 EC2를 실행하거나 복사해서 제공하거나 하게 됩니다.


SnapShot과 EC2 생성 실습

위에서 진행했던 실습을 동일하게 진행하고 마지막에 AMI를 복제하는 걸 해볼겁니다.

해당 EC2를 우클릭해서 이미지 및 템플릿의 이미지 생성에 들어가줍니다.
모든 설정은 그대로 하고 이미지 생성을 해줍니다.

AMI가 생성가능 상태로 바뀌면 성공입니다.

똑같이 인스턴스 생성으로 가서
애플리케이션 OS 및 이미지에서 내 AMI를 선택해주면 됩니다.

서버를 실행하고 url에 접속해보면 아까 작성한 Hello world가 나옵니다.

EC2 생명 주기

중지

중지 중에는 인스턴스 요금 미 청구
(단 EBS 요금은 청구)
중지 후 재시작 시 퍼블릭 IP 변경

재부팅

재부팅시에는 퍼블릭 IP 변동 없음

종료

설정에 따라 EBS도 같이 종료시키거나 아니거나


AWS 강의실 강의

profile
안녕하세요. 공부해요

0개의 댓글