1. AWS EC2 (Amazon Elastic Compute Cloud) 소개
AWS EC2는 아마존 웹 서비스(AWS)에서 제공하는 클라우드 컴퓨팅 서비스로, 사용자가 원하는 만큼의 컴퓨팅 파워를 빌려 사용할 수 있게 해줍니다.
- 탄력적 컴퓨팅: 사용자는 필요에 따라 인스턴스를 생성하고 종료할 수 있습니다.
- 다양한 인스턴스 유형: EC2는 다양한 용도에 맞춘 여러 인스턴스 유형을 제공합니다.
- 온디맨드 과금: 사용자는 인스턴스를 사용한 시간만큼 비용을 지불합니다.
- 스케일링 기능: 사용자는 Auto Scaling 기능을 통해 워크로드의 변화에 따라 자동으로 인스턴스를 추가하거나 제거할 수 있습니다.
2. EC2 기본 구성
- 인스턴스: 클라우드에서 제공되는 가상 서버로, CPU, 메모리, 그래픽 카드 등 하드웨어 자원을 포함합니다.
- AMI (Amazon Machine Image) : EC2 인스턴스를 실행하기 위한 모든 정보를 담고 있는 이미지(운영체제, 애플리케이션 등)입니다.
- EBS (Elastic Block Storage): 가상 하드디스크로, 인스턴스에 연결하여 데이터 저장 및 관리합니다.
- 보안 그룹: 인스턴스를 보호하기 위한 가상 방화벽으로, 트래픽을 제어합니다.
- VPC (Virtual Private Cloud): VPC는 AWS에서 제공하는 가상 네트워크로, VPC를 통해 사용자는 AWS 클라우드 내에서 자신의 네트워크를 정의하고 구성합니다.
3. EC2 유형(Type)
AWS EC2 인스턴스는 다양한 워크로드와 사용 목적에 맞게 여러 유형과 크기로 제공됩니다. 이를 통해 사용자는 애플리케이션의 요구 사항에 맞는 인스턴스를 선택할 수 있습니다.
1) 인스턴스 타입
AWS EC2 인스턴스는 주요 자원(메모리, CPU, 그래픽 카드)에 따라 다음과 같이 구분됩니다:
- 메모리 위주: 메모리 집약적 애플리케이션에 최적화된 인스턴스
- 예: 데이터베이스, 인메모리 캐시
- CPU 위주: 고성능 컴퓨팅 작업에 최적화된 인스턴스
- 예: 데이터 분석, 웹 서버
- 그래픽 카드 위주: 그래픽 처리 및 머신러닝 작업에 최적화된 인스턴스
- 예: 그래픽 렌더링, 비디오 트랜스코딩, 딥러닝
- 인스턴스 타입 예시
- T 타입 (범용 인스턴스): 저렴한 비용으로 균형 잡힌 성능 제공
- 예: T3, T3a
- M 타입 (범용 인스턴스): CPU와 메모리의 균형 제공
- 예: M5, M5a
- Inf 타입 (인퍼런스 인스턴스): 딥러닝 추론 작업에 최적화
- 예: Inf1
2) 세대별 표시
AWS는 인스턴스의 성능과 기능을 개선하여 새로운 세대를 출시합니다. 예를 들어, M5는 M 인스턴스의 5번째 세대를 나타냅니다. 최신 세대일수록 향상된 성능과 기능을 제공합니다.
- 세대 표시: M5, C6g, R5b 등
- "M5"에서 M은 인스턴스 패밀리, 5는 세대를 나타냄.
3) 인스턴스 크기
인스턴스 크기는 메모리, CPU, 네트워크, EBS 대역폭이 증가함에 따라 달라집니다. 인스턴스 크기는 필요에 따라 선택할 수 있으며, 크기가 클수록 더 많은 자원을 제공합니다.
- 크기 예시: large, xlarge, 2xlarge, 4xlarge 등
- 예: m5a.large, m5a.xlarge
4) 인스턴스 타입/세대/접두사/사이즈
각 인스턴스는 다음 형식으로 구성됩니다: 인스턴스 타입/세대/접두사/사이즈
- 예시: m5a.large
- m: 인스턴스 패밀리 (범용)
- 5: 세대 (5번째 세대)
- a: 추가 특성 (AMD 프로세서 사용)
- large: 크기 (CPU와 메모리의 비율)
4. EC2 생명 주기와 가격모델
1) EC2 생명주기
EC2 인스턴스는 다음과 같은 주요 생명 주기 단계를 거칩니다.
- 시작(start): 인스턴스가 처음 생성되어 실행을 시작하는 단계입니다. 이 단계에서는 인스턴스에 할당된 모든 자원이 활성화됩니다.
- 실행 중(Running): 인스턴스가 정상적으로 실행되고 있는 상태입니다. 이 상태에서는 애플리케이션이 정상적으로 작동하며, 사용자는 인스턴스에 접근하여 작업을 수행할 수 있습니다.
- 재부팅(Rebooting): 인스턴스를 소프트웨어적으로 재부팅하여 운영체제를 다시 시작하는 과정입니다. 인스턴스의 퍼블릭 IP는 변경되지 않으며 인스턴스의 볼륨 데이터는 유지됩니다.
- 중지(Stop): 인스턴스가 중지 상태로 전환됩니다. EBS를 사용하는 인스턴스만 중지할 수 있으며, 중지된 인스턴스는 퍼블릭 IP 주소가 변경됩니다. 인스턴스 스토리지 기반의 EC2(EC2 내부에 루트 스토리지)는 중지할 수 없습니다.
- 최대 절전 모드(Hibernate): 인스턴스의 메모리 내역을 EBS에 저장한 후 인스턴스를 중지합니다. 다시 시작하면 EBS에서 메모리 내역을 불러와 인스턴스를 재개합니다.
- 종료(Terminate): 인스턴스가 영구적으로 종료되는 단계입니다. 종료된 인스턴스는 삭제되며, 관련된 모든 자원이 해제됩니다.
2) EC2 가격모델
AWS EC2는 다양한 가격 모델을 제공하여 사용자가 비용을 효율적으로 관리할 수 있도록 합니다. 주요 가격 모델은 다음과 같습니다:
- 온디맨드 (On-Demand) 인스턴스
- 필요할 때마다 인스턴스를 생성하고 사용한 만큼만 비용을 지불합니다. 초기 비용 없이 유연하게 자원을 사용할 수 있습니다.
- 단기 프로젝트나 예측 불가능한 워크로드에 적합합니다. 처음 60초 이후에 초당 과금 됩니다.
- 예약 인스턴스 (Reserved Instances)
- 1년 또는 3년 동안 인스턴스를 예약하여 사용함으로써 온디맨드 인스턴스 대비 최대 75%의 비용을 절감할 수 있습니다.
- 예측 가능한 워크로드에 적합합니다.
- 스팟 인스턴스 (Spot Instances)
- AWS의 미사용 컴퓨팅 자원을 경매 형식으로 저렴하게 사용할 수 있습니다. 사용 비용이 매우 낮지만, AWS가 자원을 회수할 수 있는 위험이 있습니다.
- 유연한 워크로드나 비핵심 작업에 적합합니다.
- 여러 개의 스팟 인스턴스를 묶어서 사용하는 "Spot Fleet" 기능이 있습니다. "EC2 Fleet"은 온디맨드 인스턴스와 예약 인스턴스까지 포함하여 혼합된 인스턴스 유형으로 하나의 작업을 수행할 수 있습니다. 이를 통해 급격한 트래픽 증가에도 유연하게 대응할 수 있습니다.
- 전용 호스트 (Dedicated Hosts)
- 물리적 서버를 전용으로 사용하여 인스턴스를 실행합니다.
- 규제 요구 사항을 충족하거나 기존 소프트웨어 라이선스를 활용하는 데 유리합니다.
- EBS 및 데이터 통신 비용
- EBS 비용: EBS 볼륨 사용량, IOPS(초당 입출력 횟수), 스냅샷 저장소에 따라 별도로 청구됩니다.
- 데이터 통신 비용: 인스턴스 간의 트래픽은 무료이지만, AWS 외부로 나가는 트래픽에 대해서는 요금이 부과됩니다. 데이터 인그레스(들어오는 트래픽)는 무료입니다.
- EC2 생명 주기별 요금 부과 방식
- 실행 중(Running): 인스턴스가 실행 상태로 전환되면 사용 시간에 따라 요금이 부과되며, 최소 1분 단위로 계산됩니다.
- 재부팅(Rebooting): 인스턴스를 재부팅하면 인스턴스 청구 시간이 새로 시작되지 않습니다.
- 중지(Stop): 중지된 인스턴스는 중지 상태(Stopped State)로 전환되며, 사용 요금은 부과되지 않습니다. EBS 스토리지 요금은 계속 부과됩니다.
- 최대 절전 모드(Hibernate): 중지 상태에서 인스턴스 사용 요금은 부과되지 않지만, 중지 상태로 전환되는 동안(Stopping) 요금이 부과됩니다. RAM 데이터에 대한 스토리지를 포함해 EBS 스토리지 요금은 계속 부과됩니다.
- 종료(Terminate): 인스턴스 상태가 shutting-down 또는 terminated로 변경되는 즉시 해당 인스턴스에 대한 요금 부과가 중지됩니다.
5. EBS(Elastic Block Storage)
1) EBS (Elastic Block Storage) 개요
Amazon Elastic Block Store (EBS)는 AWS에서 제공하는 가상 블록 스토리지 서비스로, EC2 인스턴스와 함께 사용되어 안정적이고 확장 가능한 데이터 저장을 가능하게 합니다. 다음은 EBS의 주요 특징입니다.
- 네트워크 연결: EBS는 EC2 인스턴스와 물리적으로 결합되지 않고 네트워크를 통해 연결됩니다. 따라서 업그레이드가 용이하며, 필요에 따라 쉽게 확장할 수 있습니다.
- 다중 EBS 연결 가능: 하나의 EC2 인스턴스에 여러 개의 EBS 볼륨을 연결할 수 있습니다. 이는 데이터의 분산 저장 및 고가용성을 보장합니다.
- 정지 후 재가동 가능: EC2 인스턴스를 중지하고 다시 시작해도 EBS 볼륨은 그대로 유지되며, 데이터를 지속적으로 보존할 수 있습니다.(단 루트 볼륨으로 사용할경우 기본적으로 삭제됩니다.)
2) EBS 타입
EBS도 다양한 용도에 맞춘 여러 타입을 제공합니다. 주요 타입은 다음과 같습니다:
- 범용 SSD (gp3, gp2):
- 다양한 워크로드에 적합한 균형 잡힌 성능을 제공. 일반적인 사용 사례에 적합합니다.
- 프로비저닝된 IOPS SSD (io2, io1):
- 고성능과 높은 IOPS를 요구하는 애플리케이션에 적합. 데이터베이스와 같은 워크로드에 이상적입니다.
- 스루풋 최적화 HDD (st1):
- 대용량 데이터 처리에 적합한 스토리지로, 빅데이터 분석이나 로그 처리에 적합합니다.
- 콜드 HDD (sc1):
- 드문드문 접근하는 데이터를 저장하는 데 적합한 비용 효율적인 스토리지입니다.
3) 스냅샷 (Snapshot)
스냅샷은 EBS 볼륨의 특정 시점 상태를 저장하고 복구하는 데 사용됩니다. 스냅샷의 주요 특징은 다음과 같습니다:
- 상태 저장 및 복구:
- 스냅샷은 EBS 볼륨의 현재 상태를 저장하여 필요할 때 해당 시점으로 복구할 수 있도록 합니다. 이는 백업 및 재해 복구 전략에 필수적입니다.
- S3에 저장:
- 스냅샷 데이터는 Amazon S3에 저장됩니다.
- 증분식 스냅샷:
- 첫 번째 스냅샷은 전체 데이터의 복사본을 저장하지만, 이후의 스냅샷은 변경된 데이터만 저장합니다. 이는 저장 공간을 절약하고 효율적인 백업을 가능하게 합니다.
6. AMI(Amazone Machine Image)
1) AMI
Amazon Machine Image (AMI)는 EC2 인스턴스를 실행하는 데 필요한 모든 정보를 포함하는 단위입니다. AMI를 사용하면 동일한 설정을 가진 여러 인스턴스를 손쉽게 생성하거나 다른 리전 또는 계정으로 전달할 수 있습니다. AMI는 다음과 같은 정보를 포함합니다:
- 운영 체제 (OS): Linux, Windows 등 다양한 운영 체제
- 아키텍처 타입: 32비트 또는 64비트
- 스토리지 용량: 인스턴스에 할당된 디스크 용량
2) AMI의 구성 요소
- 스냅샷: 하나 이상의 EBS 볼륨 스냅샷을 기준으로 만들어집니다.
- 사용 권한: AMI에 대한 액세스 권한 (공용, 개인 또는 특정 AWS 계정에 공유)입니다.
- 템플릿 정보: 인스턴스를 설정하는 데 필요한 메타데이터 (예: 블록 디바이스 매핑, 루트 볼륨 정보 등)입니다.
- 스토리지 구성: EBS 볼륨 타입, 크기, 인스턴스 스토리지 타입 등 입니다.
3) AMI 생성 실습
1. 이미지 생성
2. 이미지 정보 입력 후 생성 완료
3. 생성된 이미지 확인
7. 보안 그룹(Security Group)
AWS EC2에서 보안 그룹(Security Group은 인스턴스의 네트워크 트래픽을 제어하는 가상 방화벽입니다. 보안 그룹은 인바운드(들어오는) 트래픽과 아웃바운드(나가는) 트래픽을 모두 제어합니다.
1) 주요 특징
- 트래픽 제어: 보안 그룹은 인스턴스로 들어오는 인바운드 트래픽과 인스턴스에서 나가는 아웃바운드 트래픽을 제어합니다.
- 인바운드 규칙: 외부에서 EC2 인스턴스로 들어오는 트래픽을 제어합니다.
- 아웃바운드 규칙: EC2 인스턴스에서 외부로 나가는 트래픽을 제어합니다.
- 허용 규칙 기반: 보안 그룹은 허용(Allow) 규칙만 설정할 수 있으며, 허용 규칙에 명시되지 않은 모든 트래픽은 기본적으로 차단됩니다. 이를 통해 필요한 트래픽만 허용하고, 나머지는 모두 거부하는 방식으로 보안이 강화됩니다.
- 상태 저장(Stateful) 방화벽: 보안 그룹은 상태 저장 방화벽입니다. 즉, 인바운드 트래픽이 허용되면, 해당 트래픽에 대한 아웃바운드 응답도 자동으로 허용됩니다. 이로 인해 별도의 아웃바운드 규칙을 설정하지 않아도, 인바운드 트래픽에 대한 응답은 자유롭게 나갈 수 있습니다.
- 제어 규칙: 보안 그룹에서 설정할 수 있는 규칙들은 다음과 같습니다.
- 프로토콜: TCP, UDP, ICMP 등 특정 프로토콜을 지정할 수 있습니다.
- 트래픽 유형: SSH, HTTP, HTTPS 등의 특정 트래픽 유형을 제어합니다.
- 포트 번호: 특정 포트 번호를 기반으로 트래픽을 허용하거나 차단합니다.
- IP 주소: 개별 IP 주소, CIDR 블록, 프리픽스 리스트, 또는 다른 보안 그룹을 대상으로 지정할 수 있습니다.
- 적용 위치: 보안 그룹은 EC2 인스턴스 앞에서 트래픽을 통제합니다. 인스턴스에 연결된 ENI를 통해 트래픽이 보안 그룹의 규칙에 따라 필터링됩니다.
2) 보안그룹 실습
1. 해당 EC2 설정에 적용된 보안그룹을 확인 할 수 있습니다.
2. 해당 보안그룹에 들어가서 인바운드 규칙을 수정할 수 있습니다.
3. 프로토콜 유형, 포트, 허용할 소스 등을 적용하여 손쉽게 트래픽을 제어할 수 있습니다.
8. Elastic IP
Elastic IP는 AWS에서 제공하는 고정된 공용 IP 주소로, EC2 인스턴스가 재시작되더라도 동일한 공용 IP 주소를 유지할 수 있도록 합니다. 일반적인 EC2 인스턴스 생성 시 자동으로 할당되는 퍼블릭 IP는 인스턴스를 재시작하거나 중지했다가 다시 시작하면 변경되지만, Elastic IP를 사용하면 이 문제를 해결할 수 있습니다.
1) 주요 특징
- 고정된 공용 IP 제공: Elastic IP는 EC2 인스턴스가 재시작되거나 중지되더라도 동일한 IP 주소를 유지할 수 있도록 합니다. 이를 통해 DNS 설정이나 외부 애플리케이션과의 통신이 안정적으로 유지됩니다.
- Elastic Network Interface(ENI)와 연결: Elastic IP는 특정 인스턴스에 연결된 ENI에 할당됩니다. ENI에 Elastic IP를 연결하면, 인스턴스가 재시작되더라도 동일한 IP 주소를 사용하게 됩니다.
- 리전 제한: Elastic IP는 생성된 리전 내에서만 사용할 수 있습니다. 예를 들어, 미국 동부 리전에서 생성된 Elastic IP는 다른 리전에서 사용할 수 없습니다.
- 과금 정책: Elastic IP 자체는 EC2 인스턴스에 연결되어 있는 동안에는 추가 비용이 발생하지 않습니다. 하지만, 생성된 Elastic IP가 EC2 인스턴스에 연결되지 않은 상태로 유지되면 과금이 발생합니다. 이는 불필요한 IP 자원을 방지하기 위한 정책입니다.
2) Elastic IP 실습
1. 탄력적 IP 태그를 클릭합니다.
2. 탄력적 IP 주소 할당를 생성합니다.
3.리전을 선택하고 할당 버튼을 누릅니다.
4. 생성된 IP를 EC2에 연결하기 위해서 주소 연결을 클릭합니다.
5. 연결할 EC2를 설정하고 연결합니다.
Elastip IP로 연결된 EC2는 이제 중지하고 다시 시작해도 퍼블릭 IP가 고정됩니다.
'컴퓨터 > AWS' 카테고리의 다른 글
AWS - VPC(Virtual Private Cloud) (0) | 2024.06.09 |
---|---|
AWS - ELB(Elastic Load Balancer) (0) | 2024.06.08 |
AWS - EC2 Auto Scaling (0) | 2024.06.06 |
AWS - IAM(Identity and Access Management) (0) | 2024.06.04 |
AWS - AWS 개요 (0) | 2024.06.04 |