Amazon EC2
- 아마존에서 가장 인기 있는 서비스
- EC2 = Elastic Compute Cloud = AWS의 서비스형 인트라스트럭처 IaaS(Infrastructure as a Service)
- EC2가 포함 하는 것
- 가상 머신 임대 (EC2)
- 가상 드라이브에 데이터를 저장 (EBS)
- 로드 분산 (ELB)
- 서비스 확장을 auto-scaling group으로 할 수 있음 (ASG)
EC2 선택 옵션
- OS
- Linux
- Windows
- Mac OS
- 가상머신에 사용할 컴퓨팅 성능과 코어의 양 (CPU)
- random-access memory (RAM)
- 저장 공간
- 네트워크를 통해 연결 (EBS & EFS)
- 하드웨어 (EC2 Instance Store)
- 네트워크 카드
- 속도
- 공용 IP
- 방화벽 규칙
- security group
- Bootstrap script
- EC2 User Data
EC2 User Data
- 가상 머신이 처음 시작할 때 한 번만 실행되고 다시는 실행되지 않음
- 부팅 작업을 작동화하기 때문에 부트스트래핑이라는 이름을 가지게 됨
- 사용할 수 있는 곳
- 업데이트
- 소프트웨어 설치
- 파일 다운로드
- etc
- Root 계정에서 실행되므로 모든 명령문은 sudo로 해야 한다.
EC2 인스턴스 유형
- AWS 명명 규칙
- m5.2xlarge
- m : 인스턴스 클래스(여기서는 범용의 인스턴스)
- 5 : 인스턴스의 세대
- 2xlarge : 인스턴스 클래스 크기
- small로 시작해 large, 2xlarge, 4xlarge 등이 있음
- m5.2xlarge
- 범용의 인스턴스(General Purpose)
- 컴퓨팅, 메모리, 네트워킹 간의 균형이 잘 맞음
- 사용처
- 웹 서버나 코드 저장소와 같은 다양한 작업에 적합
- M으로 시작함
- 컴퓨팅 최적화 인스턴스 (Compute Optimized)
- 컴퓨터 집약적인 작업에 최적화된 인스턴스
- 사용처
- 일부 데이터의 일괄 처리
- 미디어 트랜스코딩 작업시 혹은 고성능 웹 서버가 필요할 때
- 고성능 컴퓨팅이라는 HPC 작업을 할 때, 머신 러닝이나 전용 게임 서버가 있을 때 사용
- C로 시작함 (C5, C6 등)
메모리 최적화 인스턴스 (Memory Optimized)
- 메모리에서 대규모 데이터셋을 처리하는 유형의 작업에 빠른 성능을 제공
- 사용처
- 인 메모리 데이터베이스가 되는 고성능의 관계형 또는 비관계형의 데이터베이스
- 일래스릭 캐시를 예로 들 수 있는 분산 웹 스케일 캐시 저장소에도 사용
- 비즈니스 인텔리전스(BI)에 최적화된 인 메모리 데이터베이스와 대규모 비정형 데이터의 실시간 처리를 실행하는 애플리케이션에도 사용
- R로 시작함
- 대용량의 경우 X1, Z1도 있음
스토리지 최적화 인스턴스 (Storage Optimized)
- 로컬 스토리지에서 대규모의 데이터셋에 액세스할 때 적합한 인스턴스
- 사용처
- 고주파 온라인 트랙잭션 처리인(OLTP) 시스템
- 관계형, NoSQL 데이터베이스
- Redis와 같은 메모리 데이터베이스의 캐시
- 데이터 웨어하우징 애플리케이션
- 분산 파일 시스템
- I, G 또는 H1으로 시작함
보안 그룹 (Security Groups)
- AWS 클라우드에서 네트워크 보안을 실행하는데 핵심이 된다.
- EC2 인스턴스에 들어오고 나가는 트래픽을 제어한다.
- 허용 규칙만 포함한다.
- IP 주소를 참조해 규칙을 만들 수 있고 다른 보안 그룹을 참조하는 것이 가능하다.
- EC2의 방화벽이다.
보안 그룹의 규제
- 포트로의 액세스를 통제한다.
- 인증된 IP 주소의 범위를 확인한다. (IPv4, IPv6)
- 외부에서 인스턴스로 들어오는 인바운드 네트워크를 통제한다.
- 인스턴스에서 외부로 나가는 아웃바운드 네트워크를 통제한다.
보안 그룹에 대해 알아야 할 것
- 여러 인스턴스에 연결 할 수 있다.
- 보안 그룹과 인스턴스 간의 1:1 관계는 없다.
- 인스턴스에도 여러 보안 그룹을 연결할 수 있다.
- 보안 그룹은 지역과 VPC 결합으로 통제되어 있다.
- 지역을 전환하면 새 보안 그룹을 생성하거나 다른 VPC를 생성해야 한다.
- SSH 액세스를 위해 하나의 별도 보안 그룹을 유지하는 것이 좋다.
- 타임아웃으로 애플리케이션에 접근할 수 없으면 보안 그룹의 문제이다.
- 어떤 포트에 연결을 시도하는데 컴퓨터가 계속 멈추고 대기하면 보안 그룹의 문제이다.
- 연결 거부 오류가 발생하면 보안 그룹은 실행됐고 트래픽이 통과했지만 애플리케이션에 문제가 생겼거나 실행되지 않는 등 문제가 발생한다.
- 기본적으로 모든 인바운드 트래픽은 차단되어 있고 모든 아웃바운드 트래픽은 허용된다.
알아야 할 포트
- Port 22
- SSH (Secure Shell) : 리눅스에서 EC2 인스턴스로 로그인하도록 함
- SFTP (Secure File Transfer Protocol) : SSH를 사용해 파일을 업로드 하기 때문
- Port 21
- FTP (File Transfer Protocol) : 파일 전송 프로토콜
- 파일 공유 시스템에 파일을 업로드하는데 사용됨
- Port 80
- HTTP : 보안이 되지 않는 사이트에 액세스
- Port 443
- HTTPS : 보안 사이트에 액세스
- Port 3389
- RDP (Remote Desktop Protocol) : 윈도우 인스턴스에 로그인하도록 함
EC2 인스턴스 종류
- On-Demand Instances
- 예측이 가능한 가격을 가진 단기 워크로드 용 인스턴스
- 예약 인스턴스 (Reserved)
- 최소 1년 이상 사용해야 함
- 단순한 예약 인스턴스(Reserved Instances)
- 데이터베이스 같은 장기 워크로드에 사용 됨
- 전환형 예약 인스턴스 (Convertible Reserved Instances)
- 시간이 지난 후 다른 종류의 인스턴스로 바꿀 수 있는 유연형 인스턴스
- 스팟 인스턴스 (Spot Instances)
- 저렴한 단기 워크로드 용 인스턴스
- 손실 가능성이 있으며 신뢰성이 낮음
- 전용 호스트 (Dedicated Hosts)
- 물리적 서버 전체를 예약
- 인스턴스 배치를 제어
EC2 On Demand
- 사용한 만큼 지불
- Linux 혹은 Windows 머신은 실행되고 1분 후 비용이 초당 청구됨.
- 다른 OS에서는 실행 중일 때 시간당으로 계산
- 가격은 높지만, 선결제나 장기 약정이 필요 없다.
- 사용 해지, 중지, 시작이 언제든 가능하다.
- 애플리케이션 작동 방식을 예측할 수 없는 연속적인 단기 워크로드에 적합하다.
EC2 Reserved Instances
On-Demand와 비교하면 약 75%의 비용을 절약할 수 있다.
예약 기간이 있어 1년 혹은 3년 중에서 선택할 수 있다.
3년의 기간을 선택하면 AWS에서 더 큰 할인을 제공한다.
선 결제를 원하지 않을 경우 매달 비용을 지불해야 하고 부분 또는 전체 선결제도 가능하다.
전체 선결제는 당일 결제해야 하지만 큰 할인을 받을 수 있다.
애플리케이션이 안정된 상태로 사용되는, 즉 데이터베이스 등에 쓰인다.
Convertible Reserved Instance (전환형 예약 인스턴스)
- 시간이 지나면 EC2 인스턴스의 유형을 바꿀 수 있다.
- 할인율이 줄어들어 최대 54%까지 할인된다.
Scheduled Reserved Instances (정기 예약 인스턴스)
- 예약한 특정한 시간대에 EC2 인스턴스를 시작해야 하는 경우
- 하루, 한 주, 혹은 한 달의 일부만 이용하는 방식
- 1~3년을 계약해야 한다.
EC2 Spot Instances
- On-demand와 비교하면 최대 90%까지 할인
- 지불하고자 하는 가격이 현재 스팟 인스턴스의 가격보다 낮으면 인스턴스가 언제든 중단될 수 있음
- 스팟 가격은 점진적으로 변하는데 스팟 인스턴스 사용에 최고가를 지불할 의사가 있을 때에만 사용할 수 있음
- AWS에서 가장 비용 면에서 효율적인 인스턴스
- 서비스 중단에도 복구가 쉬운 워크로드에만 사용이 가능한 인스턴스
- 적합한 워크로드
- Batch Job
- Data analysis
- Image processing
- Any distributed workloads (분산된 워크로드)
- Workloads with a flexible start and end time (시작 및 종료 시점이 탄력적인 워크로드)
- 대단히 중요한 작업 또는 데이터베이스 작업에서는 절대 사용하면 안된다.
EC2 Dedicated Hosts
- EC2 인스턴스를 갖춘 유저 중심의 물리적 서버
- AWS 데이터 센터 내 하나의 서버 전체를 임대하는 것
- compliance requirements(준수 요건) 처리가 쉽고 existing server-bound software licenses (기존의 서버 결합 소프트웨어 라이센스)의 사용이 가능하다.
- 3년 동안 임대해야 한다.
- 전체 서버를 독자적으로 이용하게 되니 비용은 더 올라간다.
EC2 Dedicated Instances
- 전용 하드웨어에서 실행되는 EC2 인스턴스를 의미
- 같은 계정의 다른 인스턴스와 하드웨어를 공유하며 인스턴스가 어떻게 배치될지는 관여할 수 없음
- 전용 호스트와 전용 인스턴스의 차이점
- 전용 호스트는 호스트당 청구가 되고 전용 인스턴스는 인스턴스당 청구가 됨
- 전용 호스트는 하드웨어의 근본에 접근 권한을 많이 제공해 다양한 서버 결합 라이센스를 받을 수 있음 (소켓, 코어, 호스트 ID등에 접근 권한이 있어서)
- 전용 인스턴스는 자동 인스턴스 배치만 제공
'프로그래밍 > AWS Solutions Architect' 카테고리의 다른 글
AWS SAA - Elastic Load Balancer(ELB) (0) | 2022.05.12 |
---|---|
AWS SAA - Scalability & High Availability (0) | 2022.05.12 |
AWS SAA - EC2 Instance Storage (0) | 2022.05.12 |
AWS SAA - EC2 (2) (0) | 2022.05.11 |
AWS SAA - IAM (0) | 2022.05.09 |