3. AWS EC2 기초
AWS
EC2 (Elastic Compute Cloud)
서비스로 인프라를 작업하는 방법
인스턴스
- 컴퓨터 한 대라고 생각을 하면 된다
- 인스턴스의 갯수에 따라 컴퓨터 갯수가 정해진다
EC2는 해당 기능들을 포함하고 있다
- EC2 : 가상으로 기기를 빌려주는 것
- EBS (Elastic Block Storage) : 데이터를 가상 드라이브에 저장하는 것
- ELB (Elastic Load Balancer) : 어플리케이션 트래픽을 자동으로 분산해준다
- ASG (Auto-Scaling Group) : 사용자 정의 정책, 상태 확인 및 일정에 따라 EC2 인스턴스를 자동으로 시작하거나 종료한다
EC2 사이징과 환경 설정 옵션
어플리케이션에 적합한 EC2 인스턴스를 선택할 수 있다 / 주문형 클라우드
즉, AWS에서 한번에 주문형 클라우드, 즉 가상 저장소를 쉽고 빠르게 만들 수 있다
- EC2 인스턴스로 선택할 수 있는 응용 체제는 Linux, Window 또는 Mac OS가 있다
- 가상 컴퓨터의 CPU를 설정할 수 있다
- 가상 컴퓨터의 메모리, RAM을 설정할 수 있다
- 저장 공간을 선택할 수 있다
- 네트워크와 연결된 저장소 (EBS & EFS)
- 하드웨어로 연결된 저장소 (EC2 인스턴스 저장)
- 네트워크 카드 : 속도, 공공 IP 주소
- Firewall rules : Security Group
- Bootstrap Script (처음 실행할 때 확인) : EC2 User Data
- Bootstrap : 기계가 시작할 때에, 명령을 실행하는 것
EC2 User Data
- 인스턴스가 시작할 때만 Bootstrap Script가 작동한다
- EC2 User Data는 부팅 테스크 (Boot Task)를 자동화 할 수 있다
- 업데이트를 다운 받을 수 있다
- 소프트웨어 다운로드를 받을 수 있다
- 인터넷에서 명령 파일을 다운로드 받을 수 있다, 등
- EC2 User Data Script는 루트 유저만 작동 할 수 있다
EC2 인스턴스 종류
- R : 인스턴스 클래스다 (일반 목적의 인스턴스)
- 5 : 세대 (AWS는 계속 인스턴스를 업데이트 시킨다)
- d : 추가적인 기능
- xLarge : 인스턴스 클래스 안의 사이즈
- size가 클 수록 기능적인 면에서 더 좋을 것이다
EC2 인스턴스 종류 - General Purpose
- 웹 서버 또는 코드 저장소 같은 다양한 작접량을 처리할 때 유용한 EC2 인스턴스다
- Compute, Memory, Networking 간에 균형이 잡힌 인스턴스다
EC2 인스턴스 종류 - Compute Optimized
- 고성능 프로세서가 필요할 때에 사용되는 인스턴스다
- 일괄 처리 작업량
- 고성능 웹 서버
- 고성능 컴퓨팅 (HPC)
- 머신 러닝
- 게임 등
- 주로 Compute Optimized 인스턴스는 C로 시작한다
EC2 인스턴스 종류 - Memory Optimized
- 굉장히 많은 양의 데이터를 처리할 때 Memory Optimized 인스턴스가 좋다
- 고성능, 관계형, 비관계형 데이터 베이스
- Distributed web scale cache stores
- BI (Business Intelligence)에 적합한 인메모리 데이터 베이스
- 체계가 없는 실시간 빅데이터
- Memory Optimized 인스턴스는 RAM의 앞 부분을 따서 R로 많이 시작하지만, 그보다 더 높은 메모리를 사용할 수 있는, X와 Z도 있다
EC2 인스턴스 종류 - Storage Optimized
- 로컬 저장소의 많은 데이터를 접근할 때 유용하다
- 고주파 온라인 거래 프로세싱 (OLTP, Online Transaction Processing)
- 관계형 & NoSQL 데이터베이스
- 인메모리 데이터베이스을 위한 캐싱 (Redis)
- 데이터 창고 어플리케이션
- 파일 분산 시스템
- I, D, H로 주로 시작한다
Security Groups
Security Groups는 AWS의 네트워크 보안의 기본이다
EC2 인스턴스들에 누가 들어오고, 나가는지, 트래픽을 통제한다
허용 규칙만 존재해서, 무엇이 허용되고, 안 되는지 쉽게 알 수 있다
Inbound : 외부에서 EC2 인스턴스를 접속하는 것이다
- 외부에서 EC2 인스턴스를 접속하기 위해서는, 최소한으로 방화벽이 열려있어야 한다
- 즉, 허용된 외부의 컴퓨터만이 EC2 인스턴스를 접속하게 만들어야, 보안상 더 안전하다
- port : 22 - SSH 라고하는 통신을 위해서 필요하다
- port : 80 (HTTP) - 웹을 위해 통신을 하는 것이고, 0.0.0.0/0 으로 설정하면, 웹을 통해서, 누구나 EC2 인스턴스를 접속할 수 있다
- 그 외에 허용 범위를 지정할 수 있다
Outbound : EC2 인스턴스가 외부에 접속하는 것이다
- EC2 인스턴스는 모든 외부와 접속을 할 수 있다
Security Groups의 규칙은 IP 주소, 또는 보안 그룹에 따라 참조될 수 있다
- 포트 접속을 조절한다
- IP 주소 범위에 따라 조절할 수 있다 - IPv4과 IPv6
- 인바운드 네트워크 또는 아웃바운드 네트워크를 조절 할 수 있다
알아두면 좋은 것
- Security Groups는 다수의 인스턴스에 포함될 수 있다
- 지역을 바꿀 경우, 새 보안 그룹을 만들거나, 또 다른 VPC를 만들어야 한다
- SSH 접속을 할 때에 독립된 security group을 유지하는 것이 좋다
- 어플리케이션에 접속이 안 될 때, 특히 Time Out이 걸리면 Security Group에 문제가 있는 것이다
- 어플리케이션이 connection refused 에러를 주면, 어플리케이션 에러나 또는 실행이 아직 안 됬다는 것이다
- Inbound 트래픽은 기본적으로 모두 차단이 되어 있다
- Outbound 트래픽은 모두 기본적으로 허용이 되어 있다
기본 포트
- 22 = SSH (Secure Shell) - 리눅스 인스턴스에 로그인이 된다
- 21 = FTP (File Transfer Protocol) - 파일을 File Share에 업로드 한다
- 22 = SFTP (Secure File Transfer Protocol) - 파일을 업로드할 때 SSH를 사용한다
- 80 = HTTP - 보안이 안 된 웹 사이트에 접속을 한다
- 443 = HTTPS - 보안이 된 웹 사이트에 접속을 한다
- 3389 = RDP (Remote Desktop Protocol)
요금에 대해
On-Demand Instances (온디맨드)
예시) 호텔에 언제든 가서 지내거나, 언제는 나올 수 있다 / 대신 원래 가격에서 돈을 지불해야 한다
- 사용한만큼 돈을 지불하는 것이다
- 운영체제, 지역에 따라 비용이 다르다
- 제일 비싸지만, 선불 결제가 없다
- 짧게 쓰거나, 언제든 취소를 하고 싶을 때에 사용할 수 있는 요금이다
- 단기의 갑작스럽거나 예측할 수 없는 작업량 그리고 중단되어서는 안 되는 어플리케이션에 유용할 수 있다
Reserved - 1 & 3
예시) 호텔에 갈 계획을 미리 짜고, 오래 머문다는 과정하에 할인을 받는 것이다
- 온디멘드 요금보다 최대 72% 할인을 받을 수 있는 요금이다
- 특정 인스턴스 속성을 정한다 (예. 인스턴스 종료, 지역, OS, Tenancy)
- 예약 기간을 명시한다 (1년 또는 3년)
- 기간에 따라, 더 많은 할인을 받을 수 있다
- 요금 결제 방법에 따라 할인을 추가로 받을 수 있다 (선지급, 부분적 선지급, 후불)
- 인스턴스 범위를 지정한다 - Regional 또는 Zonal
- Reserved Instance 시장에서, 인스턴스를 사거나 팔 수 있다
- Convertible Reserved Instance : 특정 Reserved Instance
- EC2 인스턴스 종류, OS, 범위, 임대기간을 바꿀 수 있다
- 할인은 최대 66%다
Savings Plans (절감형 플랜) - 1 & 3
예시) 호텔에서 특정 시간당 얼마를 내면서, 호텔 객실 어디서든 지낼 수 있는 것이다
- 장기간 사용량에 따라 할인을 받는 것이다 (Reserved Instance와 같이 최대 72% 할인을 받을 수 있다)
- 특정 종류를 사용할 것을 약속한다 ($10/hour for 1 or 3 years)
- EC2 Savings Plans 사용량을 초과할 경우, 초과한 사용량은 온디멘드 비용으로 처리한다
- 특정 인스턴스 Family 또는 AWS 지역에 묶여있다
- 자유로운 것
- 인스턴스 크기 (ex. m5.xlarge, m5.2xlarge)
- OS (ex. Linux, Windows)
- Tenancy (Host, Dedicated, Default)
Spot Instances (스팟 인스턴스)
예시) 호텔 객실을 경매로 방을 선택하게 만드는 것이다. 하지만 원래 선택했던 방에, 다른 사람이 더 높은 값을 부르면, 방을 빼야 한다
- 온디멘드 요금보다 최대 90% 할인을 받을 수 있는 요금이다
- 비용적인 측면에서 제일 효율성이 높다
- 최대 가격을 지정하는 것이라서, 최대 가격을 넘어갔을 경우, 넘어간 데이터는 모두 없어진다
- 실패에 회복력이 빠른 작업량에 도움이 된다
- 일괄 작업
- 데이터 분석
- 이미지 프로세싱
- 시작과 끝이 유연한 작업량
- 중요한 작업 또는 데이터베이스를 다룰 때에는 어울리지 않는 요금이다
Dedicated Hosts (전용 호스트)
예시) 호텔 전체를 빌리는 것이다
- 고객 전용의 물리적 EC2 서버다
- 타사의 소프트웨어 라이센스를 사용할 수 있어, 고객이 보유한 소프트웨어 라이센스르 사용할 수 있도록 한다
- 요금 정보
- 온디맨드 / Reserved
- 제일 비싼 가격의 요금이다
- 복잡한 라이센스 모델을 가진 소프트웨어에 도움이 된다
- 강력한 규제 또는 규정 준수 요구 사항이 있는 기업에 도움이 된다
Dedicated Instances
- 사용자 전용 하드웨어에서 실행되는 인스턴스다
- 하드웨어를 같은 계정의 다른 인스턴스들과 공유할 수 있다
- 하지만 인스턴스 배치에 대해, 제어권이 없다
Capacity Reservations
예시) 특정 기간 동안 호텔 방을 원래 가격으로 빌린다. 호텔에 없어도 그 가격을 내야 한다.
- 온디맨드 인스턴스를 특정 Availability Zone에 시간 제한 없이 예약을 하는 것이다
- 항상 EC2 용량에 접근을 할 수 있다
- 언제든 예약을 하거나 취소할 수 있지만, 할인은 없다
- Regional Reserved Instances와 Savings Plans을 합쳐서 요금 할인을 받을 수 있다
- 인스턴스를 사용하든, 안 하든, 온디맨드 요금으로 청구가 된다
- 특정 Availability Zone에서 단기간 그리고 지속된 작업량에 좋을 수 있다
'AWS' 카테고리의 다른 글
6. AWS ASG (0) | 2023.03.17 |
---|---|
5. AWS ELB (0) | 2023.03.17 |
4. AWS EC2 인스턴스 저장소 (0) | 2023.03.10 |
2. AWS IAM / CLI (0) | 2023.03.08 |
1. AWS Introduction (0) | 2023.03.06 |