AWS 비용 관리
- default는 root계정을 통해서만 비용관리 가능
-> root 계정을 통해 IAM사용자에게 비용관련 권한을 Activate하면 IAM사용자도 비용관리 가능
2. Bills메뉴 : 비용이 어떤 기준으로 발생하는지? 어떤 서비스에서 얼만큼의 비용이 발생하는지 등의 비용 청구관련 정보 확인 가능
3. Budget메뉴 : 설정된 비용에 대한 한도가 도달했을 때 메일알림 설정 가능
4. Free tier 메뉴 : 무료서비스의 종류와 무료사용량 확인 가능
EC2(Elastic Compute Cloud) : Infrastructure as a Service, 서비스를 위한 인프라
- 가상머신을 EC2에서 대여 -> EC2 인스턴스
- 가상 드라이브에 데이터 저장 -> EBS
- 부하분산 -> ELB (Elastic Load Balancer)
- Auto Scaling 기능을 포함한 그룹 -> ASG (Auto-Scaling Group)
EC2에서 선택할 수 있는 것
- OS (리눅스, 윈도우, mac OS)
- CPU
- RAM
- Storage space (스토리지 공간) 여부
- ESB & EFS와 네트워크 연결
- 하드웨어 공간 내장 (EC2 Instance Store)
- 네트워크 종류(카드) (속도, public IP 등)
- 방화벽 설정
- User Data Script : 인스턴스 구성을 위한 부트스트랩 스크립트 (root 계정에서 실행, sudo 명령 필요)
- 부트스트랩 스크립트 : 머신이 작동될 때 한번 실행되는 명령 (ex. 업데이트, 소프트웨어 설치 등)
- 부트스트랩 스크립트 : 머신이 작동될 때 한번 실행되는 명령 (ex. 업데이트, 소프트웨어 설치 등)
EC2 유형
EC2 접근을 위한 SSH 활용을 위해서는 key pair를 생성해야 함
EC2 인스턴스가 재부팅 되면 public IP가 재할당됨 (private IP는 고정)
EC2 인스턴스 유형
- General Purpose (ex. t2.micro)
- 웹서버, 코드 레포지토리 등에 활용
- CPU, 메모리, 네트워킹 간의 균형도 잘 맞음
- Compute Optimized
- 고성능의 컴퓨팅 작업이 필요할 때 활용 (고성능 CPU 활용)
- Batch processing, machine learning, HPC(Hight performance computing) 등
- 'C'로 시작하는 인스턴스 이름을 갖고 있음
- Memory Optimized
- 많은 양의 데이터 처리가 필요할 경우 활용 (고성능/고용량의 RAM 활용)
- 관계형 데이터베이스, 비정형 데이터의 실시간 처리 등
- 'R'로 시작하는 인스턴스 이름을 갖고 있음 (X1, Z1도 있긴 함)
- Storage Optimized
로컬 스토리지에서 대규모의 데이터에 접근할 때 적합
OLTP(High Frequency Online Transaction Processing), 관계형 데이터베이스, NoSQL, Redis
'I', 'D', 'H1'으로 시작하는 인스턴스 이름을 갖고 있음 (X1, Z1도 있긴 함)
EC2 인스턴스 목록 : https://www.ec2instances.info/
EC2 네이밍 규칙
EX) m5.2xlarge
- m : instance class
- 5 : generation
- 2xlarge : size with in the instance class, CPU/메모리에 따라 달라짐
EC2 방화벽 (EC2 Security Group) : 보안그룹이 EC2 인스턴스에 들어오고 나가는 트래픽을 제어함 -> 규칙을 만들어 제어, IP로 대상or보안그룹 참조
- 포트로의 접근을 통제
- 인증된 IP주소의 범위를 확인
- Inbound/Outbound 모두 통제
- 보안그룹으로 연결하면 별도 ip제어는 필요하지 않음
Security Groups
- 하나의 인스턴스가 여러개의 보안그룹을 가질 수 있고, 동시에 하나의 보안그룹이 여러개의 인스턴스를 가질 수 있음
- Region과 VPC결합으로 통제 (지역이 전환되면 새 보안그룹을 생성하거나 VPC를 생성해야 함.)
- EC2외부에서 실행됨
- SSH 접근을 위한 보안그룹은 별도로 생성하는 것을 추천 -> SSH 접근이 복잡함
- EC2 인스턴스로의 타임아웃 문제는 보안그룹 문제일 가능성이 큼 -> 타임아웃이 아닌 응답을 받았다면, 보안그룹 문제가 아님
- default 규칙 : outbound, EC2 인스턴스에서 다른 ip로의 트래픽을 모두 허용, inbound, 다른 ip에서의 트래픽을 모두 차단
보안그룹간 연결을 통해서 inbound 트래픽을 제어 -> Load Balancer 기능을 다룰 때 자주 언급됨.
SSH (Secure Shell) : 22번 포트, Linux 인스턴스에 로그인
FTP (File Transfer Protocol) : 21번 포트
SFTP (Secure File Transfer Protocol) : 22번 포트, SSH를 활용하여 파일을 업로드
HTTP : 80번 포트
HTTPS : 443번 포트
RDP (Remote Desktop Protocol) : 3389번 포트, 윈도우OS 인스턴스에 로그인할 때 활용
EC2 인스턴스에 접근하기 위한 방법
- SSH : 관리자가 인스턴스에 접근하기 위한 방법 (CLI, SSH 명령어 활용 (ssh -i ec2-user@{ip}), default user name : ec2-user) -> Mac, Linux, 윈도우10이상 OS에서 활용 가능
- 윈도우10 미만일 경우, Putty 활용 -> SSH와 동일, 모든 윈도우에 호환
- EC2 Instance Connect : 관리자가 웹 브라우저를 통해 인스턴스에 접근하는 방법 (내부적으로 SSH 사용) -> 모든 OS에 호환
EC2 인스턴스에서 IAM role 실습
IAM ROLE : AWS 인스턴스에 의해 사용되도록 만들어진 role
EC2 Instance Connect에는 이미 AWS CLI가 설치되어 있음
EC2 instance의 Security 설정에서 IAM ROLE 할당 가능
자격증명 (Credential)
: access key나 id, pwd, region 등 각 계정에 대한 개인정보aws configure : 자격증명(Credential) 정보 입력 (key, regin 이름 등) -> 해당 명령어로 EC2 인스턴스에 입력해두면, 해당 인스턴스에 접근할 수 있는 모든 사용자가 접근할 수 있어서 지양해야 함. -> IAM ROLE 할당을 통한 자격증명 제공 방식 권장
aws iam list-users : IAM으로의 접근 권한을 가진 IAM ROLE을 해당 인스턴스에 할당하면 사용 가능, iam user list를 반환 받을 수 있음 (IAM ROLE을 통해 자격증명(Credential) 제공)
EC2 인스턴스 구매 옵션
- On-Demand Instance : short workload, 예측할 수 없는 비용, 초당 비용 청구
- Reserved (1 & 3 years), On-Demand에 비해 할인 제공, 선결제, 인스턴스 타입/Region/Tenancy/OS 등을 미리 정할 수 있음, 사용량을 예측할 수 있을 때 권장, 팔 수도 있음
- Reserved Instances : long workloads
- Convertible Reserved Instances : 유연한 변경(인스턴스 타입/Region/Tenancy/OS 등)을 위함, 상대적으로 할인율 적음
- Saving Plans (1 & 3 years) : 달러 단위로 특정 사용량을 정하는 것, long workloads, 장기간 할인 가능, 한도를 넘어서면 On-Demand 가격 책정, 특정 인스턴스 패밀리와 region은 손실됨
- Spot Instances : short workloads, 값이 싸지만 언제든 인스턴스가 다운될 수도 있음 -> 다른 사용자에 의해서 등... 우선순위가 낮은 사용방식 (신뢰성 낮음), 가장 할인율 높음, 지불하려는 최대 가격을 정의하고 해당 가격을 초과할 경우 인스턴스가 제거됨, 중요한 작업이나 데이터베이스에는 적절하지 않음.
- Dedicated Hosts : 물리적 서버 전체를 예약을 통해 인스턴스 배치 제어, 다른 사용자가 해당 물리적 서버를 사용하지 못함, 기존의 서버에 연결된 소프트웨어 라이센스가 있거나 법규 준수 요건 등이 필요할 때 활용됨. (On-Demand or Reserved), 가장 비싼 옵션
- Dedicated Instances : 나의 인스턴스를 나만의 하드웨어에 갖게 됨 (Dedicated Hosts는 물리적 서버 자체에 대한 접근권을 갖게됨) 뭔차이?
- Capacity Reservations : 원하는 기간동안 특정 AZ(가용영역)에 On-Demand 인스턴스 용량을 예약할 수 있음
- On-Demand
- Reserved
- Savings Plans
- Spot Instances
- 사용자가 정한 Spot 가격 기준 인스턴스 Up/Down 결정
- Spot 가격은 계속 변동됨.
- Spot 가격이 초과할 경우, 2분의 유예시간이 주어짐 (중지할 것인지 Down 시킬 것인지 결정 후 작업)
- Spot Blocks : Spot 가격이 초과해도 AWS가 인스턴스를 회수하는 것을 원하지 않을 때 활용, 지정된 기간동안 해당 인스턴스 중지 (1~6시간), 드물게 회수되는 경우도 있음 -> 22년 12월 31에 없어짐
- Use Case : 배치job, 데이터 분석, 장애 복원력이 뛰어난 workloads 등
- Spot Request : Spot가격, 인스턴스 수, 사양, AMI, 요청 유형(일회성, 영구성) 등을 정하여 요청
일회성 : 1회 요청하고 끝
영구성 : 지속적 요청, spot가격이 올라가는 등의 사유로 인스턴스가 중지될 때 다시 요청하고 유효성이 확인되면 인스턴스 재실행 (Spot요청 활성화 상태) -> Spot 인스턴스를 완전히 내리려면, Spot 요청도 비활성화 상태로 만들어야 함.
Spot Fleets : Spot 인스턴스 세트(pool)를 정의하는 방법
Spot 가격에 맞게 적합한 인스턴스의 스펙(인스턴스 유형, OS, 가용영역)을 정함
Spot 가격에 도달하면 인스턴스 중지
Spot 인스턴스를 할당하는 전략을 정의해야 함.
- 최저 가격 : 인스턴스를 시작할 때 고려되는 기준, 해당 가격에 맞게 인스턴스를 정하고 시작함. -> workload가 매우 짧을 때 유용
- 스팟 인스턴스를 실행하는 방법 : 모든 pool에 spot 인스턴스 분산 -> 좋은 가용성, 긴 workload에 유리
- 용량 최적화 : 원하는 인스턴스 수에 맞는 최적의 용량을 가진 pool
- 가격 용량 최적화 : 사용 가능한 용량이 가장 큰 pool을 선택한 후에 그 중 가격이 가장 낮은 pool을 선택하는 전략 -> 대부분의 workload에 적합
summary : spot fleets을 사용하면 여러개의 시작pool과 여러 인스턴스 유형을 정의할 수 있음. 최저가 할인의 Spot Instance에서 최저가 전략 spot fleet을 사용하면 spot fleet에서 자동으로 가장 낮은 가격의 spot 인스턴스를 요청함 (사전에 인스턴스유형/용량 등 옵션을 사용자가 지정함)
원하는 인스턴스 유형과 가용영역을 알고 있다면 spot fleet을 안써도 됨.
Dedicated Hosts -> 어려움... 재확인 필요
- Dedicated Hosts vs Dedicated Instances
- Capacity Reservations
- Summary
'개발 > AWS' 카테고리의 다른 글
[AWS] Load Balancer (0) | 2024.05.06 |
---|---|
[AWS] EC2 (3) (0) | 2024.05.03 |
[AWS] EC2 (2) (1) | 2024.04.30 |
[AWS] IAM 및 AWS CLI (0) | 2024.04.18 |
[AWS] AWS Region (0) | 2024.04.13 |