728x90
반응형

AWS 비용 관리

  1. 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에서 선택할 수 있는 것

  1. OS (리눅스, 윈도우, mac OS)
  2. CPU
  3. RAM
  4. Storage space (스토리지 공간) 여부
    1. ESB & EFS와 네트워크 연결
    2. 하드웨어 공간 내장 (EC2 Instance Store)
  5. 네트워크 종류(카드) (속도, public IP 등)
  6. 방화벽 설정
  7. User Data Script : 인스턴스 구성을 위한 부트스트랩 스크립트 (root 계정에서 실행, sudo 명령 필요)
    • 부트스트랩 스크립트 : 머신이 작동될 때 한번 실행되는 명령 (ex. 업데이트, 소프트웨어 설치 등)


  • EC2 유형




  • EC2 접근을 위한 SSH 활용을 위해서는 key pair를 생성해야 함

  • EC2 인스턴스가 재부팅 되면 public IP가 재할당됨 (private IP는 고정)

EC2 인스턴스 유형

  1. General Purpose (ex. t2.micro)
  • 웹서버, 코드 레포지토리 등에 활용
  • CPU, 메모리, 네트워킹 간의 균형도 잘 맞음

  1. Compute Optimized
  • 고성능의 컴퓨팅 작업이 필요할 때 활용 (고성능 CPU 활용)
  • Batch processing, machine learning, HPC(Hight performance computing) 등
  • 'C'로 시작하는 인스턴스 이름을 갖고 있음

  1. Memory Optimized
  • 많은 양의 데이터 처리가 필요할 경우 활용 (고성능/고용량의 RAM 활용)
  • 관계형 데이터베이스, 비정형 데이터의 실시간 처리 등
  • 'R'로 시작하는 인스턴스 이름을 갖고 있음 (X1, Z1도 있긴 함)

  1. Storage Optimized
  • 로컬 스토리지에서 대규모의 데이터에 접근할 때 적합

  • OLTP(High Frequency Online Transaction Processing), 관계형 데이터베이스, NoSQL, Redis

  • 'I', 'D', 'H1'으로 시작하는 인스턴스 이름을 갖고 있음 (X1, Z1도 있긴 함)

  • EC2 인스턴스 목록 : https://www.ec2instances.info/

EC2 네이밍 규칙

EX) m5.2xlarge

  1. m : instance class
  2. 5 : generation
  3. 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 인스턴스 구매 옵션

  1. On-Demand Instance : short workload, 예측할 수 없는 비용, 초당 비용 청구
  2. Reserved (1 & 3 years), On-Demand에 비해 할인 제공, 선결제, 인스턴스 타입/Region/Tenancy/OS 등을 미리 정할 수 있음, 사용량을 예측할 수 있을 때 권장, 팔 수도 있음
    1. Reserved Instances : long workloads
    2. Convertible Reserved Instances : 유연한 변경(인스턴스 타입/Region/Tenancy/OS 등)을 위함, 상대적으로 할인율 적음
  3. Saving Plans (1 & 3 years) : 달러 단위로 특정 사용량을 정하는 것, long workloads, 장기간 할인 가능, 한도를 넘어서면 On-Demand 가격 책정, 특정 인스턴스 패밀리와 region은 손실됨
  4. Spot Instances : short workloads, 값이 싸지만 언제든 인스턴스가 다운될 수도 있음 -> 다른 사용자에 의해서 등... 우선순위가 낮은 사용방식 (신뢰성 낮음), 가장 할인율 높음, 지불하려는 최대 가격을 정의하고 해당 가격을 초과할 경우 인스턴스가 제거됨, 중요한 작업이나 데이터베이스에는 적절하지 않음.
  5. Dedicated Hosts : 물리적 서버 전체를 예약을 통해 인스턴스 배치 제어, 다른 사용자가 해당 물리적 서버를 사용하지 못함, 기존의 서버에 연결된 소프트웨어 라이센스가 있거나 법규 준수 요건 등이 필요할 때 활용됨. (On-Demand or Reserved), 가장 비싼 옵션
  6. Dedicated Instances : 나의 인스턴스를 나만의 하드웨어에 갖게 됨 (Dedicated Hosts는 물리적 서버 자체에 대한 접근권을 갖게됨) 뭔차이?
  7. 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 인스턴스를 할당하는 전략을 정의해야 함.

    1. 최저 가격 : 인스턴스를 시작할 때 고려되는 기준, 해당 가격에 맞게 인스턴스를 정하고 시작함. -> workload가 매우 짧을 때 유용
    2. 스팟 인스턴스를 실행하는 방법 : 모든 pool에 spot 인스턴스 분산 -> 좋은 가용성, 긴 workload에 유리
    3. 용량 최적화 : 원하는 인스턴스 수에 맞는 최적의 용량을 가진 pool
    4. 가격 용량 최적화 : 사용 가능한 용량이 가장 큰 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

+ Recent posts