AWS 서비스 파악하기 - IAM, EC2, EBS, ELB, RDS

“업무에 바로 쓰는 AWS 입문” 책을 통해 AWS 핵심 리소스를 파악해본다.

서론

AWS의 다양한 리소스를 파악해보고자
업무에 바로 쓰는 AWS 입문 책을 읽기 시작했다.
그 내용을 하나씩 정리해보고자 한다.


IAM (Identity and Access Management)

IAM은 어떤 리소스나 서비스에 대한 접근 권한 및 레벨 관리 기능을 제공한다.

root 유저는 모든 리소스를 제약없이 사용할 수 있고, 새로운 유저를 만들 수 있다.
유저는 access key와 secret key를 가지고 있다.
유저를 생성할 때 access key와 secret key를 확인할 수 있고,
secret key는 나중에 다시 확인할 수 없다고 한다.
따로 보관하고 유출되지 않도록 주의한다.

쉽게 말해서
access key는 아이디, secret key는 비밀번호로 생각하면 된다.


관리 요소

IAM은 유저, 그룹, 역할, 정책을 관리한다.

  • 유저
    • 유저는 access key와 secret key를 가지고 AWS 리소스를 사용할 수 있다.
  • 그룹
    • 그룹은 하나 or 여러 유저를 포함할 수 있다.
    • 그룹 전체에 접근 권한을 설정할 수 있다.
  • 정책(Policy)
    • 정책을 생성하여 최소 권한 정책을 펼칠 수 있고, 유저 및 그룹에 적용시킬 수 있다.
  • 역할(Role)
    • 역할은 하나 or 다수의 정책을 포함할 수 있다.

계정 타입

유저 생성 시 계정의 타입을 설정한다.

  • Programmatic Access
    • access key를 발급해서 AWS API를 호출하는 방식으로 사용
  • AWS Management Console Access
    • AWS 웹 콘솔 사용
    • User name, Password를 입력해 로그인

EC2 (Elastic Compute Cloud)

EC2는 클라우드 공간에 크기가 유연하게 변경되는 가상 서버 기능을 제공한다.


비용 지불 방식

  • On-Demand
    • 시간당 정해진 금액 지불
    • 짧은 시간 동안 인스턴스를 임대하는 방식 (ex. 서버 테스트 등)
    • 인스턴스의 크기를 늘리거나 줄일 수 있음 (O)
    • 사용한만큼 후불 결제
  • Reserved
    • 특정 기간만큼 임대
    • 인스턴스의 크기를 늘리거나 줄일 수 없음 (X)
    • 선불 결제, 저렴한 가격
  • Spot
    • 인스턴스 가격을 입찰하여 구매하는 방식
    • 시장 경제에 따라 인스턴스 비용이 변화함.
      입찰가에 내놓은 금액(최소, 최대)과 맞으면 인스턴스 실행, 그렇지 않으면 꺼진다.

EBS (Elastic Block Store)

파일 및 오브젝트를 보관할 수 있는 스토리지 볼륨(파일 시스템)을 만들어준다.
EBS는 EC2 인스턴스에 부착되어 사용된다.
EC2 인스턴스가 종료되어도 EBS안에 있는 데이터는 유지된다.

EBS 타입

  • SSD (Solid State Driver)
    • 입출력이 많을 때 유리
  • HDD (Hard Disk Driver)
    • 처리량이 많을 때 유리 (ex. 방대한 스트리밍 워크로드 등)

ELB (Elastic Load Balancer)

EC2는 ELB를 사용하여 서버 트래픽을 원활하게 해준다.

ELB 타입

  • ALB (Application Load Balancer)
    • OSI Application(7th) Layer에서 작동
    • HTTP, HTTPS와 같은 네트워크 트래픽을 제어(라우팅)할 때 적합
  • NLB (Network Load Balancer)
    • OSI Transport(4th) Layer에서 작동
    • TCP/IP 모델 포함. TCP 트래픽을 관리(라우팅).
    • 대량 요청에 적합 (ex. production 환경)
  • CLB (Classic Load Balancer)
    • ALB, NLB보다 성능이 뒤처지는 레거시
    • 네트워크 호스트가 누구인지 알 수 없는 문제.
      믿어도 되는 호스트인지 판단 불가능.

흔히 일어날 수 있는 ELB 에러

  • 504 Gateway Time-out 에러
    • 로드밸런서 최대 접속 시간 제한 (default 60초)
    • 애플리케이션 규모가 크다면 시간 제한을 변경

X-Forwarded-For 헤더

  • HTTP/HTTPS 요청을 로드 밸런서에서 받을 때 출처에 대한 정보를 담고 있다.
  • public IP address는 DNS 요청에 의해 ELB에서 private IP address로 인식.
    private IP address가 EC2 인스턴스로 보내지는데, public IP address를 확인 불가능.
    → 그래서 X-Forwarded-For 헤더에 public IP address를 담아서 전달.

RDS (Relational Database Service)

관계형 데이터베이스 서비스 생성


자동 백업 (Automated Backup)

RDS에서 데이터베이스를 생성하면 자동 백업 기능이 default로 활성화 된다.
1~35일의 보유 기간 내에 특정 시간으로 데이터베이스 상태를 복원할 수 있다.
7~35일로 설정 가능하다.

자동 백업 기능은 스냅샷과 트랜잭션 로그를 생성 후 S3 버킷에 저장.
복구 희망 날짜의 스냅샷과 트랜잭션 로그를 참조하여 복원.

자동 백업 단점

  • 백업 정보를 S3에 업로드하는 동안 입출력 지연 발생
  • 원본 RDS 인스턴스를 삭제하면 백업 정보도 모두 사라짐

다중 가용 영역 (Multi Availability Zone)

DB에서 어떤 이벤트가 발생할 때,
기존 DB 인스턴스를 업데이트함과 동시에 가용 영역에 복제본이 만들어 진다.

가용 영역에 복제본 생성 실패 시,
RDS가 자동 감지하여 다른 안정적인 가용 영역에 복제본 다시 생성한다.

만약 기존 인스턴스에 문제가 생기면 복제본으로 롤백한다.
이를 재해 복구(Disaster Recovery)라고 한다.


읽기 전용 복사본 (Read Replica)

데이터를 읽기 위한 데이터베이스 복제본.
읽기 작업만 수행 가능.

읽기 전용 DB를 복제하여 트래픽 분산.
최대 5개까지 복제 가능.


References

Choi SeungEun Tech Blog
Built with Hugo
Theme Stack designed by Jimmy