드디어 말로만 듣던 EC2 에 대해 공부를 해보겠습니당
Amazon EC2 소개
Amazon EC2(Amazon Elastic Compute Cloud) 는 AWS의 퍼블릭 클라우드 환경에서 확장 가능한 컴퓨팅 자원을 제공하여 가상의 서버를 운영할 수 있는 서비스이다
AWS 서비스나 기능들의 용어를 살펴보면 Elastic 이라는 단어가 빈번하게 나오는걸 확인할 수 있는데
Elastic 은 "탄력적인"이라는 뜻이며, 컴퓨팅 자원에 대해 원하는 만큼 확정, 축소하여 유연하게 사용할 수 있는 개념으로 이해하면 된다!
Amazon EC2는 인스턴스라는 가상 컴퓨팅 환경을 기반으로 하며, AMI(Amazon Machine Image)를 이용하여 인스턴스에 필요한 소프트웨어 정보를 정의한다
=> 이렇게 Amazon EC2 인스턴스는 사용자가 요구하는 CPU, 메모리, 디스크, 운영 체제, 소프트웨어 등을 제공하여 워크로드에 맞는 최적화된 가상의 서버를 생성하고 관리할 수 있다
Amazon EC2 인스턴스
Amazon EC2 인스턴스는 가상의 컴퓨팅 환경으로 CPU, 메모리, 스토리지, 네트워킹 용량을 결정하는 다양한 인스턴스 유형을 제공한다
Amazon EC2는 500개가 넘는 인스턴스 유형을 제공하여 사용자 목적과 비즈니스 환경에 맞게 최적화된 선택을 할 수 있다!
https://aws.amazon.com/ko/ec2/instance-types/
위의 사이트에서 인스턴스 유형별 자원을 상세히 확인해볼 수 있다!
인스턴스 유형 구조는
t2.micro 와 같이 표현되며
t는 인스턴스 패밀리로 용도별 분류의 역할
2는 인스턴스 세대로 높을수록 최신 세대이고 그에 따라 성능이 우수하다
micro는 인스턴스 크기로 크기가 커질수록 용량 및 가격이 증가한다
이렇게 다 합치면 t2.micro 와 같이 표현될 수 있는 것이다!
책에서 진행하는 실습의 EC2 인스턴스 유형은 프리 티어 정책에서 무료로 제공하는 't2.micro 인스턴스' 를 사용할 예정
인스턴스 상태는
일반적으로 일곱 가지로 분류할 수 있으며, 어떤 행위에 최종적으로 도달하는 상태와 진행 과정에 따른 상태로 나눌 수 있다
최종적으로 도달하는 상태는 '실행 중(running)', '중지됨(stopped)', '종료됨(terminated)' 상태이며
진행 과정에 따른 상태는 '대기 중(pending)', '중지 중(stopping)', '재부팅(rebooting)', '종료 중(shutting-down)' 상태이다
인스턴스 상태 변화에 따른 동작 흐름을 살펴보자면
1. 최초 인스턴스를 시작하는 행위
최초 시작 -> 대기 중 -> 실행 중(특별한 이상이 없을 경우)
2. 실행 중인 인스턴스를 중지하는 행위
실행 중 -> 중지 중 -> 중지됨(인스턴스 종료가 아닌 일시적 중지 상태로 얼마든지 다시 시작 가능)
3. 중지된 인스턴스를 시작하는 행위
중지됨 -> 대기 중 -> 실행 중
4. 중지된 인스턴스를 종료하는 행위
중지됨 -> 종료 중 -> 종료됨(인스턴스 영구 삭제)
5. 실행 중인 인스턴스를 종료하는 행위
실행 중 -> 종료 중 -> 종료됨(인스턴스 영구 삭제)
로 일반적인 흐름이라고 이해하기는 어렵지 않지만 몇 가지 주의해야 할 점이 있다!
'중지됨' 상태와 '종료됨' 상태의 차이를 명확히 알아야 하는데
'중지됨' 상태는 '인스턴스를 유지한 채 일시적으로 중지한' 상태이기 때문에 얼마든지 다시 구동할 수 있지만 '종료됨' 상태는 '인스턴스를 영구 삭제' 하기 때문에 다시 사용하기 어렵다!
그리고 '종료됨' 상태가 되어도 관리 콘솔상에서 바로 삭제되지 않음에 유의해야 한다
종료되어도 인스턴스가 금방 사라지지 않고 일정 시간 정보를 출력한다
(종료되지 않아서 남아 있는 것은 아니므로 다른 작업을 수행해도 됨)
AMI
AMI(Amazon Machine Image)는 인스턴스를 시작할 때 필요한 정보를 제공하는 것으로 운영 체제와 소프트웨어를 적절히 구성한 상태로 제공되는 템플릿이다
인스턴스를 생성할 경우 AMI 를 지정해야 하며, 하나의 AMI로 동일한 구성의 여러 인스턴스를 손쉽게 생성할 수 있다!
이런 AMI는 사용자 정의의 AMI를 생성하여 활용할 수도 있고, AWS Marketplace에서 제공하는 서드 파티용 AMI 를 선택하거나 AWS 자체적으로 정의된 기본 AMI를 선택하여 활용할 수도 있다
책에서 하는 실습은 AWS에서 자체적으로 정의한 AMI를 활용하여 EC2 인스턴스를 생성하는데, 사용자 정의 AMI는 어떤 흐름에 따라 생성되는지도 알아야하니... 한번 보자
1. AWS에서 자체적으로 제공하는 기본 AMI를 활용하여 Amazon EC2 인스턴스를 생성
2. 사용자 요구에 따라 변경하거나 구성하여 사용자 정의 AMI 이미지를 생성
3. 이렇게 만든 사용자 정의 AMI를 활용하여 맞춤형 인스턴스를 생성
AMI는 동일 리전 또는 다른 리전으로 복사할 수 있고, 더 이상 필요 없는 AMI는 등록을 취소할 수 있다!
Amazon EC2 스토리지
AMI를 통해 Amazon EC2 인스턴스 환경을 설정했다면, 다음으로 어떤 저장소를 사용할지 결정해야 한다
스토리지는 데이터를 저장하는 공간이라는 의미로, 서버 자원에서 발생되는 다양한 데이터를 보관하려면 필수적으로 존재해야 하는 요소이다.
(Amazon EC2 는 유연하고 효율적이며 사용하기 쉬운 데이터 스토리지 기능을 제공함)
Amazon EC2 인스턴스용 스토리지 유형은 기본적으로 인스턴스 스토어(instance store) 와 블록 스토리지인 Amazon EBS(Elastic Block Store) 로 나뉜다
인스턴스 스토어는 인스턴스에 바로 붙어 있는 저장소로, Amazon EC2 인스턴스를 생성하면 기본적으로 존재하는 스토리지 이다!
(일부 인스턴스 유형은 인스턴스 스토어를 지원 X)
=> 직접 붙어 있는 구조 덕분에 매우 빠른 I/O 를 보장한다는 장점이 있지만, Amazon EC2 인스턴스를 중지하거나 종료하면 인스턴스 스토어에 저장된 데이터가 모두 손실된다는 단점이 있다!
Amazon EBS는 쉽게 외장 하드디스크와 비슷한 개념으로 연상하면 이해하기 쉽다
(인스턴스에 연결 및 제거를 하는 형태로 구성되는 블록 스토리지임)
=> 인스턴스가 네트워킹을 통해 Amazon EBS에 접근하여 연결되는 구조로, 영구 보존이 가능하다!
=> Amazon EBS는 관리 콘솔을 통해 스냅샷을 생성하여 백업하거나 Amazon EBS 연결을 해제한 후 다른 인스턴스에 연결할 수 있다는 특징이 있다!
Amazon EC2 네트워킹
Amazon EC2 인스턴스는 근본적으로 어떤 서비스를 수행하는 특수한 목적으로 만들어진 가상 서버 자원이다
그러기에 서비스를 제공하려면 자연스럽게 통신이 가능한 환경으로 구성되어야함
=> Amazon EC2 인스턴스 통신을 위한 Amazon EC2 네트워킹 요소들을 알아보자!
(자세한건 3장에서 알아볼것이므로, 주요 요소만 쓱 알아보자)
Amazoon VPC는 AWS 퍼블릭 클라우드 안에서 논리적으로 격리된 가상의 클라우드 네트워크이다
(생성된 Amazon EC2 인스턴스는 별도로 구성된 하나의 Amazon VPC 안에 생성되어 네트워킹 된다)
네트워크 인터페이스는 말그대로 네트워킹을 수행하는데 필요한 인터페이스이다
AWS에서는 ENI(Elastic Network Interface)라는 논리적 네트워크 인터페이스가 VPC 내 생성되며, ENI를 EC2 인스턴스에 연결해서 네트워킹을 수행한다
IP 주소란 Internet Protocol 로 앞서 설명한 네트워크 인터페이스에는 IP 주소가 존재한다
(IP 주소로 대상을 구분하고 네트워킹을 수행!)
=> 이런 IP 주소는 내부 구간의 통신을 위한 프라이빗 IP 와 외부 구간의 통신을 위한 퍼블릭 IP 로 나뉜다
이런 구조입니다....
Amazon EC2 보안
AWS에서는 클라우드 보안을 중요하게 인식하고 있으며, Amazon EC2도 안정적으로 서비스를 제공하고 관리하기 위해 EC2 보안 기능을 제공한다!
주요 보안 기능들을 살펴보면
보안 그룹 : Amazon EC2 인스턴스의 송수신 트래픽을 제어하는 가상의 방화벽 역할을 한다
=> Amazon EC2 인스턴스로 들어오는 트래픽을 허용 또는 거부하거나 반대로 나가는 트래픽을 허용 또는 거부하는 규칙을 정의할 수 있다
(트래픽을 정의하는 방법에는 프로토콜, 포트 번호, IP 대역 등이 있음)
키 페어 : Amazon EC2 인스턴스에 연결할 때 자격을 증명하는 보안 키이다
=> 키 페어는 퍼블릭 키와 프라이빗 키로 구성되는데 퍼블릭 키는 Amazon EC2 인스턴스에 저장되고, 프라이빗 키는 사용자 컴퓨터에 별도로 저장된다
(Amazon EC2 인스턴스를 생성한 후 가상 서버에 접근하여 설정이 필요하면 사용자가 보관하고 있는 프라이빗 키를 활용하여 자격을 증명하고 접근할 수 있음)
Amazon EC2 모니터링
불특정 다수에게 제공되는 서비스는 언제 어느 시점에 트래픽이 몰려와 부하가 발생할지 알 수 없다!
=> Amamzon EC2 인스턴스의 자원은 유한하며, 자원 이상의 부하가 있을 때는 분명 장애가 발생할 수 있음
따라서, Amazon EC2 인스턴스의 모니터링은 서비스 안정성과 가용성, 성능 유지에 필요한 중요한 영역이다
실제 모니터링 및 경보를 수행할 때는
1. 모니터링 목표
2. 모니터링 대상 자원
3. 모니터링 빈도
4. 모니터링 수행 도구
5. 모니터링 작업을 수행할 사람
6. 문제가 발생할 때 경보를 알려야 할 대상
등의 모니터링 계획을 정의해서 생성해야 한다!!
Amazon EC2 모니터링은 다양한 지표(metric)에 대해 수동 모니터링과 자동 모니터링으로 분류할 수 있으며, 각 분류에 따라 다양한 모니터링 도구가 있다
그 중 몇가지 도구를 살펴보자면
수동 모니터링은 말 그대로 관리자가 직접 관리 콘솔을 이용하여 모니터링을 수행하는 것이다.
=> Amazon EC2 대시보드에서 간단한 통계 정보를 확인하거나 Amazon CloudWatch라는 모니터링 전용 서비스를 이용하여 상세한 통계 정보를 모니터링할 수 있다
자동 모니터링은 대상 자원의 지표에 대해 임곗값을 정하고, 임곗값을 초과하면 경보를 내리는 형태의 동적인 모니터링 방법을 의미한다
=> 자동 모니터링 도구는 다양하지만, 그 중 한 가지를 살펴보자면 Amazon CloudWatch 경보 시스템을 이용하여 동적으로 단일 지표를 관찰하고 지정된 임곗값을 기준으로 경보 작업을 수행할 수 있다
(이런 경보 작업은 Amazon SNS라는 알림 시스템으로 관리자 이메일을 호출하거나 다른 방법으로 호출하거나 Amazon EC2 인스턴스 자원을 동적으로 확장할 수 있다)
Amazon EC2 인스턴스 구입 옵션
Amazon EC2 인스턴스에는 다양한 구입 옵션이 있다!
=> 사용자의 요구와 비용 측면을 고려하여 알맞은 형태의 옵션을 선택해야 함
- 온디맨드 인스턴스 : 시작하는 인스턴스에 대한 비용을 초 단위로 지불
- Savings Plans : 1년 또는 3년 동안 시간당 비용을 약정하여 일관된 컴퓨팅 사용량을 제공
- 예약 인스턴스 : 1년 또는 3년 동안 인스턴스 유형과 리전을 약정하여 일관되 인스턴스를 제공
- 스팟 인스턴스 : 미사용 중인 인스턴스에 대해 경매 방식 형태로 할당하는 방식
'Infra > AWS 교과서' 카테고리의 다른 글
[AWS 교과서] 3장 - AWS 네트워킹 서비스(1) (1) | 2024.01.03 |
---|---|
[AWS 교과서] 2장 - AWS 컴퓨팅 서비스(3) (2) | 2024.01.03 |
[AWS 교과서] 2장 - AWS 컴퓨팅 서비스(1) (1) | 2024.01.01 |
[AWS 교과서] 1장 - AWS란?(3) (1) | 2023.12.31 |
[AWS 교과서] 1장 - AWS란?(2) (1) | 2023.12.31 |