💝 Amazon EC2
✤ AWS 에서 임대하는 가상 서버
✤ Amazon 에서 가장 인기있는 서비스이다.
✤ AWS 에서 제공하는 서비스형 시설
✤ EC2 = Elastic Compute Cloud (탄력있는 컴퓨트 클라우드) = Infrastructure as Service (서비스로서의 인프라)
✤ 1의 서비스가 아니라 많은 것을 포함하고 있다.
• EC2 (임대하는 가상 서버)
• EBS (가상 드라이브에 데이터 저장)
• ELB (기계 전체에 부하 분산)
• ASG (auto-scaling group 을 사용하여 서비스 확장)
✤ AWS EC2 의 사용법을 아는 것은 클라우드 작동 방식을 이해할 때 필수적이다.
✤ 클라우드는 필요할 때마다 언제든지 컴퓨팅을 대여할 수 있고 EC2 가 그 예시이다.
🚨 EC2 인스턴스 구성 옵션
✤ 운영체제 : Linux, Window, MacOs
✤ CPU 수
✤ RAM 양
✤ 용량
• EBS & EFS
• EC2 인스턴스 스토어
✤ 연결할 네트워크 종류
✤ 방화벽 규칙
✤ 인스턴스를 구성하기 위한 부트스트랩 스크립트
인스턴스를 통해 storage, memory, network 에 접근 가능
✤ 여러분은 원하는대로 가상 머신을 선택해서 AWS 에서 빌릴 수 있다! → User 가 직접 구성 결정 가능
🚨 EC2 사용자 데이터
✤ 사용자 데이터 스크립트를 사용하여 인스턴스를 부트스트래핑(머신이 작동될 때 명령을 시작하는 것) 할 수 있다.
✤ Root 계정에서 실행된다. - sudo 명령어 사용
✤ 스크립트 시작할 때 1번만 실행
✤ 부팅 작업을 자동화 한다.
✤ 인트턴스를 부팅할 때 자동화하고 싶은 작업
• 업데이트 설치
• 소프트웨어 설치
• 인터넷으로 부터 공통 파일 다운로드
• 생각할 수있는 모든 것!
✤ 사용자 데이터 스크립트에 작업을 더 추가할수록 부팅 시 인스턴스가 늘어난다.
✤ 실습 : Amazon Linux 에서 실행되는 첫번째 EC2 인스턴스를 생성
• 콘솔을 사용하여 첫번째 가상서버를 실행할 수 있다.
• 다양한 매개변수에 대한 높은 수준의 접근 방식을 얻을 수 있다.
• EC2 사용자 데이터를 사용하여 웹 서버가 시작될 수 있다.
• 인스턴스의 시작/종료/중지하는 방법을 얻을 수 있다.
• 인스턴스 타입은 CPU 개수, 메모리 용량, 비용에 따라 달라진다.
🚨 EC2 인스턴스 유형 (Types)
✤ 명명규칙 ex) m5.2xlarge
• m : 인스턴스 클래스 → 범용의 인스턴스
• 5 : 인스턴스의 세대 (하드웨어 개선에 따른 세대)
• 2xlarge : 인스턴스 클래스 내에서 크기 (small, large, 4xlarge, ...)
✤ EC2 인스턴스 유형 4가지
• 범용 인스턴스
• 최적화 인스턴스
• 메모리 최적화 인스턴스
• 스토리지 최적화 인스턴스
범용 인스턴스 (General Purpose)
• 웹서버나 코드 저장소 같은 다양항 작업에 적합
• 컴퓨트, 메모리, 네트워킹 → 균형이 잘 맞음
최적화 인스턴스 (Compute Optimized)
• 컴퓨터 집약적인 작업에 최적화된 인스턴스
• 고성능 프로세서
• 훌륭한 CPU 와 컴퓨팅을 요구하는 작업
• 이름이 C 로 시작
메모리 최적화 인스턴스 (Memory Optimized)
• 메모리에서 대규모 데이터 셋을 처리하는 유형의 작업에 빠른 성능을 제공
• 사용 사례
- 데이터 베이스
- 분산 웹 스케일 캐시 저장소
- BI(business intelligence) 에 최적화된 인메모리 데이터베이스
- 대규모 비정형 데이터의 실시간 처리를 수행하는 애플리케이션
• 이름이 R 로 시작 (RAM 을 나타냄)
스토리지 최적화 인스턴스 (Storage Optimized)
• 로컬 스토리지에서 대규모의 데이터셋에 액세스할 때 적합한 인스턴스
• 사용 사례
- 고주파 온라인 트랜젝션 처리인 OLTP 시스템에 사용
- NoSQL 데이터베이스
- 인메모리 데이터베이스의 캐시 (Redis)
- 분산 파일 시스템에 사용
• 이름이 I, G, H1 로 시작
전체 인스턴스 확인 사이트
🚨 보안그룹 Security Groups
✤ 연결 상태를 추적하는 상태 저장 방화벽 이다 (Stateful Firewall)
✤ 보안그룹은 AWS 클라우드에서 네트워크 보안을 실행하는데 핵심이 됨
✤ EC2 인스턴스에 들어오고 나가는 트래픽을 제어함
✤ 허용 규칙만 포함
✤ IP 주소를 참조해 규칙을 만들 수 있다 (컴퓨터의 위치나 다른 보안그룹을 참조하는것 - 보안그룹끼리 서로 참조 가능)
✤ 보안그룹은 EC2 인스턴스의 방화벽이며 포트로 액세스를 통재하며, 인증된 IP 주소의 범위를 확인해 IPv4 인지 IPv6 인지 확인한다.
✤ 규제 사항
• 포트로 액세스 통제
• 인증받은 IP 범위 : IPv4 와 IPv6
• 외부에서 인스턴스로 들어오는 인바운드 네트워크 통제
• 인스턴스에서 외부로 나가는 아웃바운드 네트워크 통제
✤ 보안그룹 규칙
Type | Protocol | Port Range | Source (ip 주소 점위) | Description |
HTTP | TCP | 80 | 0.0.0.0/0 (전체 ip) | test http page |
SSH | TCP | 22 | 122.149.196.85/32 | |
Custom TCP Rule | TCP | 4567 | 0.0.0.0/0 (전체 ip) | java app |
- Port Range : 트래픽이 인스턴스에서 통과하는 위치
- Source : IP 주소 범위
🚨 알아두면 좋은 보안그룹
✤ 여러 인스턴스에 연결 가능
✤ 보안그룹과 인스턴스 간의 일대일 관계는 없다
✤ 보안그룹지역과 VPC 결합으로 통제되어 있다 - 지역 벗어나면 보안그룹 다시 생성해야함
✤ 보안그룹은 EC2 외부에 있다 → 트래픽이 차단되면 EC2 인스턴스에서 볼 수 없다
✤ SSH 액세스를 위해 하나의 별도 보안그룹을 유지하는 것이 좋다
✤ time out 으로 인한 액세스 불가 → 보안그룹 문제이다
✤ connection refused(연결거부) 로 인한 액세스 불가 → 애플리케이션 문제이거나 보안그룹이 실행되지 않은 것이다
✤ 모든 인바운드 트래픽은 차단, 모든 아웃바운드 트랙픽은 허용됨
🚨 Ports
✤ 22 = SSH (Secure Shell) : Linux 인스턴스로 로그인하도록 함 (Linux 인스턴스에 원격으로 접속하기 위한 방식)
✤ 21 = FTP (File Transfer Protocol) : 파일 전송 프로토콜
✤ 22 = SFTP (Secure File Transfer Protocol) : SSH 를 사용해 파일 업로드
✤ 80 = HTTP : 보안되지 않은 사이트에 액세스
✤ 443 = HTTPS : 보안된 사이트에 액세스. 현재 표준!
✤ 3389 = RDP (Remote Desktop Protocol) : 원격 데스크톱 프로토콜. 윈도우 인스턴스에 로그인할 때 사용 (윈도우 인스턴스에 원격으로 접속하기 위한 방식)
🚨 SSH
✤ SSH 는 보안을 통해 원격으로 접속하기 위한 방식
운영체제 | SSH (명령줄 인터페이스 도구) | Putty | 웹브라우저로 EC2 인스턴스에 연결 |
Mac | ✅ | ✅ | |
Linux | ✅ | ✅ | |
Windows < 10 | ✅ | ✅ | |
Windows >= 10 | ✅ | ✅ | ✅ |
• SSH 프로토콜을 이용해 Max/Linux 인스턴스에 원격으로 연결 및 파일 전송 가능
• Putty 프로토콜을 이용해 Windows 인스턴스에 원격으로 연결 및 파일 전송 가능
(Windows 10 이상인 경우 SSH 프로토콜 이용 가능)
• EC2 인스턴스 프로토콜을 이용해 Mac/Linux/Windows 인스턴스에 원격으로 연결 및 파일 전송 가능
🚨 EC2 인스턴스 구매 옵션
✤ 온디맨드 인스턴스 (EC2 On Demand)
✤ 예약 인스턴스 (EC2 Reserved Instances)
✤ 절약 플랜 (EC2 Saving Plans)
✤ 스폿 인스턴스 (EC2 Spot Instances)
✤ 전용 호스트 (EC2 Dedicated Host)
✤ 전용 인스턴스 (EC2 Dedicated Instances)
✤ 용량 예약 (EC2 Capacity Reservations)
온디맨드 인스턴스 (EC2 On Demand)
• 약정 없이 초당 사용한 만큼 비용 지불
• 사용료 지불
- Linux 또는 Windows : 사용한 대로 비용 지불
- 다른 운영 체제 : 시간 단위로 지불
• 비용이 가장 많이 든다.
• 사용한 만큼만 비용 지불
• 장기 약정 없음. 선 결제 없음.
• 단기간 동안 예측할 수 없는 워크로드 및 중단되어서는 안되는 애플리케이션에 적합
• 처음으로 개발 중이거나 시험 중인 애플리케이션에 적합
예약 인스턴스 (EC2 Reserved Instances)
• 온디맨드에 비해 75% 저렴
• 1년 또는 3년 약정으로 구매하는 인스턴스
• 수요가 꾸준하고 예측가능한 경우에 적합 - 사용량 일정한 DB 에 적합
• 결제옵션 : 전체 선결제 / 부분 선결제 / 선결제 없음 → 3가지
• 선택가능한 예약 인스턴스 유형
- 표준형 예약 인스턴스 (Standard Reserved Instances) : 인스턴스 타입을 지정하면 예약기간동안 변경 불가능
- 전환형 예약 인스턴스 (Convertible Reserved Instances) : 예약기간동안 인스턴스 타입 변경 가능
- 정기 예약 인스턴스 (Scheduled Reserved Instances) : 지정된 시간, 날짜 동안에 인스턴스가 시작되어 사용 (반복적이며 하루, 한 주 또는 한 달의 일부 기간 동안 필요한 경우 적합)
절약 플랜 (EC2 Savings Plans)
• 온디맨드에 비해 75% 저렴
• 1년 또는 3년 기간에 특정 사용량 약정으로 구매하는 인스턴스
• 사용량은 시간 당 $달러로 요금 측정
• 예를 들어 한 시간에 $5 의 컴퓨팅 사용량을 약정하면, $5 까지 Savings Plans 가격이 청구되고, 초과 사용량은 온디맨드 요금이 청구됨
• 온디맨드에 비해 최대 66%~72% 저렴
• 예약 인스턴스와 다르게 인스턴스 사이즈, 리전, OS 관계 없이 유연성 있게 적용 및 변경 가능
• 두가지 유형
- Compute Saving Plans
- EC2 Instance Saving Plans
스폿 인스턴스 (EC2 Spot Instances)
• 가장 저렴 (온디맨드에 비해 최대 90% 저렴)
• 인스턴스 손실 될 수 있다 → 조건에 미달하면 인스턴스 중지 또는 종료되므로 언제든지 시작 및 종료가 가능한 경우에 사용
• 서버 중단없이 지속적으로 실행되어야 하는 경우 적합 X → 중요한 작업이나 DB 에는 적합하지 않다
• 여러 개의 스폿 인스턴스를 하나의 그룹으로 묶어 스폿 집합(Spot Fleets) 으로 구매해서 사용 가능
• 예약 인스턴스 + 스폿 인스턴스(짧은 시간에 급격하게 증가된 용량이 필요한 경우) 조합으로 사용 가능
전용 호스트 (EC2 Dedicated Hosts)
• 가장 비싼 옵션
• 물리적인 전용 서버를 할당받아 사용하는 방식
- CPU 소켓, 코어 등이 표시됨
- 사용자가 인스턴스 배치 방법을 지정 가능
- 소프트웨어 라이선스 사용 가능
• 여러분이 물리적 서버 자체에 대한 접근권을 갖고 낮은 수준의 하드웨어에 대한 가시성을 제공해준다
전용 인스턴스 (EC2 Dedicated Instances)
• 전용 하드웨어에서 실행되는 인스턴스 (물리적 서버와 다르다)
• 같은 계정에서 다른 인스턴스와 함께 하드웨어 공유 가능
• 여러분이 자신만의 인스턴스를 자신만의 하드웨어에 갖는다
- 전용 호스트에서 사용 가능한 CPU 코어, 인스턴스 배치, 사용자 라이선스 사용 불가
용량 예약 (EC2 Capacity Reservations)
• 원하는 기간동안 특정 AZ 에서 예약. 필요시마다 용량 접근 가능
• 약정 X, 청구할인 X
• 인스턴스 실행 여부와 관계없이 온디맨드 비율로 비용이 부과됨
• 특정 AZ 에 있어야 하는, 중단 없는, 단기 워크로드에 적합
🚨 EC2 Section
✤ EC2 인스턴스 : AMI(OS) + 인스턴스 사이즈(CPU+RAM) + 스토리지 + 보안그룹 + EC2 사용자 데이터
✤ 보안그룹 : EC2 인스턴스에 연결된 방화벽
✤ EC2 사용자 데이터 : 인스턴스가 처음 시작할 때 실행되는 스크립트
✤ SSH : EC2 인스턴스로 터미널 시작 (Port 22)
✤ EC2 인스턴스 룰 : IAM 역할에 대한 연결
✤ 구매 옵션 : 온디맨드 인스턴스 / 예약 인스턴스 / 절약 플랜 / 스폿 인스턴스 / 전용 호스트 / 전용 인스턴스 / 용량 예약
'🌦 Cloud' 카테고리의 다른 글
[AWS/SAA-03] 로드 밸런서 (Load Balancer) (0) | 2023.04.23 |
---|---|
[AWS/SAA-03] EC2 인스턴스 스토리지 (0) | 2023.04.21 |
[AWS/SAA-03] 탄력적 IP, 배치그룹, ENI, 절전모드 (0) | 2023.04.20 |
[AWS/SAA-03] IAM : 계정 및 권한 관리 서비스 (0) | 2023.04.16 |
[AWS/SAA-03] AWS 는 Global Service❗️ (0) | 2023.04.16 |