AWS certificate DVA-C02 공부 내용입니다.
EC2
Elastic Compute Cloud = Infrastructure as a Service
- 구성요소:
- ec2인스턴스
- 가상 드라이브 or EBS 볼륨
- 로드밸런서
- 자동확장 그룹, ASG
- 구성 시 옵션
- 운영체제(Linux, Windows, Mac OS)
- 컴퓨팅 성능과 코어(CPU)
- RAM
- 저장공간(네트워크를 통해 연결할 스토리지: EBS& EFS 또는 하드워드(EC2 Instance Store))
- 네트워크 카드, 공인 ip주소
- 보안그룹
- 부트스트랩 스크립트: EC2 User Data
EC2 User Data
- ec2 사용자 데이터 스크립트를 사용하여 인스턴스를 부트스트랩할 수 있음
- 부트스트랩 : 컴퓨터가 시작될 때 명령을 실행하는 것
- 한번만 실행되고 다시는 실행되지 않음
- 부팅 작업을 자동화
- 업데이트 설치, 소프트웨어 설치, 파일 다운로드 등
- EC2 User Data Script는 root사용자에서 실행
- 어떤 명령이든 sudo 권한을 갖게 됨
인스턴스 유형
AWS 명명규칙
예) m5.2xlarge
- m: instance class
- 5: 인스턴스 생성
- 2xlarge: 클래스 내의 크기(크기가 클수록, 메모리가 많을 수록 인스턴스에 더 많은 CPU 사용)
1. General Purpose
- 웹 서버, 코드 저장소 등 다양한 용도에 적합
- 컴퓨팅, 메모리, 네트워크 간 성능이 균형적
2. Compute Optimized
- 고성능을 요구하는 컴퓨팅 집약적인 작업에 최적화
- 데이터 일괄처리
- 미디어 트랜스코딩 수행
- 고성능 웹 서버
- 고성능 컴퓨팅 수행(HPC)
- 머신러닝, 전용 게임 서버가 있는 경우
3. Memory Optimized
메모리에서 대용량 데이터 세트를 처리하는 워크로드 유형에 매우 빠른 성능 제공
사용사례
- 관계, 비관계형 데이터베이스
- 분산형 웹 스케일 캐시 저장소(Elastic Cache)
- 비즈니스 인텔리전스 또는 BI에 최적화 된 메모리 데이터베이스
- 대규모 비정형 데이터의 실시간 처리를 수행하는 애플리케이션
4. Storage Optimized
로컬 스토리지에 있는 많은 데이터 세트에 엑세스할 때 유용
사용 사례
- 빈도가 높은 온라인 트랜잭션 처리(OLTP 시스템)
- 관계형 및 NoSQL 데이터베이스
- 인메모리 데이터베이스용 캐시(예: Redis)
- 데이터 웨어하우징 애플리케이션
- 분산 파일 시스템
보안그룹
승인된 IP범위를 봄(IP4 and IP6)
인바운드 규칙: 외부에서 EC2로 들어오는 트래픽에서의 허용 규칙
아웃바운드 규칙: EC2에서 외부로 나가는 트래픽에서의 허용 규칙
- 보안그룹 규칙
- 타입
- 프로토콜(TCP)
- 포트 범위
- 소스(0.0.0.0/0 -> 모든 포트 범위
- 설명
- 특징
- 여러개의 인스턴스에 부착할 수 있음
- 인스턴스는 여러개의 보안그룹을 가질 수 있음
- 리전과 VPC 내에서만 적용됨
- 보안 그룹은 EC2외부에 존재
- SSH 접근을 위한 보안그룹을 따로 만드는 걸 권장
- 기본적으로 모든 인바운드 트래픽은 차단되고 아웃바운드는 허용됨
- 특정 포드/IP가 규칙으로 설정되지 않았다면 접속 시도 시 타임아웃됨
- 포트번호
- 22 = SSH (Linux 인스턴스에 로그인)
- 21 = FTP(파일 전송 프로토콜 - 파일 공유, 파일 업로드)
- 22 = SFTP(보안 파일 전송 프로토콜 - SSH를 사용하여 파일 업로드)
- 80 = HTTP (보안되지 않은 웹사이트에 엑세스)
- 443 = HTTPS (보안된 웹사이트에 엑세스)
- 3389 = RDP (윈도우 인스턴스에 엑세스)
SSH
SSH는 명령 줄을 이용해서 컴퓨터를 원격 조종할 수 있게 함.
window를 이용해 EC2 인스턴스에 SSH 연결
1. powershell 접속
2. pem파일이 있는 곳에서
ssh -i ./EC2Tutorial.pem ec2-user@publicIp
또는
- 인스턴스 상세 화면에서 [Connect]
- [EC2 Instance connect]로 브라우저 기반 ssh 접속 가능
IAM Role 설정
인스턴스 접속한 aws cli를 통해 aws configure하는 것은 권장되지 않음
1. 인스턴스 상세 화면에서 [Actions] - [Security] - [Modify IAM role]
2. 이미 만들어진 IAM 역할 선택
그 후 콘솔에서 aws iam list-users하면 연결된 역할 정보가 보임
EC2 구매옵션
- on-Demand Instance
- 짧은 작업에 적합
- Linux나 Windows를 사용한다면 시작 1분 후 초당 청구서를 받음
- 원가는 높지만 선금 없고, 장기적인 계약도 없
- Reserved(1&3년)
- 긴 작업에 적합
- 유동적인 인스턴스 형식을 원할 경우(시간이 지나면서 인스턴스 형식을 바꾸길 원할 경우)
- on-Demand 보다 72% 할인
- 특정 인스턴스 속성을 정함(인스턴스 형식, 지역, 태넌시, OS)
- 1/3년 동안의 예약 기간을 명시하고 부분적으로 선지급 결정
- 예약 인스턴스를 시장에서 사고 팔 수 있음
- Convertible Reserved Instance
- 형식, 인스턴스 패밀리 운영체제, 범위, 테넌트 형식을 바꿀 수 있게 해줌
- 할인은 좀 덜 됨. 66%
- Saving Plan(1 & 3년)
- 특정 양의 사용량에 커밋
- 사용량에 따라 지불됨. 긴 작업에 적합
- 장기 사용에 따라 할인 존재
- 특정 인스턴스 클래스/세대나 지역에 한정됨
- 인스턴스 형식, os 등 변경 가능
- Spot Instance
- 짧은 작업에 적합, 저렴 (on-Demand보다 90% 할인)
- 언제든지 잃을 수 있음. 낮은 신뢰
- 배치 작업, 이미지 처리, 데이터 분석 등 실패에도 탄력적인 서비스에 적합
- Dedicated Hosts
- 전체 물리적 서버를 예약하고 인스턴스 컨트롤 가능
- on-Demand, reserved로 구매 가능
- 가장 비싼 옵션
- 복잡한 라이센스 모델인 경우, 규제 준수에 철저한 회사인 경우
- Dedicated Instances
- 내가 사용하는 하드웨어를 타 aws고객과 공유하지 않음
- 같은 계정의 다른 인스턴스와는 하드웨어 공유 가능
- Capacity Reservations
- 특정 AZ 의 용량을 일정시간동안 예약할 수 있게 해줌, 필요할 때마다 접근 가능
- 사용시간 당 비용청구 없고 할인 또한 없음
- 할인을 위해 Saving plans나 Reserved 인스턴스와 결합 필요
- 인스턴스 가동과 상관없이 고정 요금
- 특정 AZ에 있어야하는 단기 작업에 적합
