gony-dev 님의 블로그

Section 12. AWS CLI, SDK, IAM 역할 및 정책 본문

AWS

Section 12. AWS CLI, SDK, IAM 역할 및 정책

minarinamu 2024. 9. 26. 20:00

EC2 Instance Metadata(IMDS)

IMDS

메타데이터를 가지고 있는 것은 공개 IP, 프라이빗 IP 등의 여러 정보를 알 수 있다.
또한 IAM 역할 이름도 조회할 수 있다.

 

IMDSv2 vs. IMDSv1

  1. IMDSv1은 특정 URL로 바로 액세스 할 수 있다.
  2. IMDSv2는 더 보안이 강화되어 있어서 두 가지 단계를 거쳐야 한다.
    1. PUT 명령어로 세션 토큰을 얻어야 한다.
    2. IMDSv2 호출에서 세션 토큰 헤더에 넣어 사용해야 한다.

AWS CLI

계정은 보통 'cat credentials'를 사용하는데
여러 계정을 확인하고 싶다면 'profile'을 사용하면 된다.

 

MFA with CLI

  • 시험에 출제될 수 있는 문제는 CLI 또는 SDK을 이용해 다요소 인증을 사용하는 방법이다.
  • CLI로 MFA를 사용하려면 일시적 세션을 생성해야만 한다.
    • 그렇게 하기 위해서는 STS GetSession Token API를 호출해야 한다.

AWS SDK

  • CLI를 사용하지 않고 애플리케이션 코드에서 직접 AWS 작업을 하기 위해 사용한다.
  • Java, .NET, PHP, Python, Go, Ruby, C++등을 사용한다.
  • SDK는 DynamoDB 같은 AWS 서비스에서 API 호출을 발행할 때 사용한다.
  • 시험에서는 언제 SDK를 사용해야하는지 물어본다.

AWS Limits(Quotas)

제한에는 2가지가 존재한다.
1. API Rate Limits
- AWS API를 연속으로 호출하는 횟수를 말한다.
- 예시로 Amazon S3는 접두부와 초당 5,500 GET의 제한이 있다.
- 진행하다 보면 간헐적 오류가 발생하는데 제한되기 때문이다.
- 이런 경우에는 API 제한 증가를 요청에 계속 사용하도록 한다.

2. Service Quotas(Service Limits)
- 실행할 수 있는 리소스 수를 의미
- 온디맨드 표준 인스턴스의 경우, 1152 개의 가상 CPU를 사용할 수 있고 더 많이 사용하려면 티켓을 오픈에서 한도 증가를 요청할 수 있따. 또는 Service Quotas API를 사용할 수 있다.

 

간헐적 지수가 발생할 때에는 '지수 백오프'를 사용해야 한다.

언제 이것을 사용 할까?

  • 바로 조절 오류(ThrottlingException)가 발생한 경우이다.
  • SDK 동작에는 이 재시도 메커니즘이 포함되어 있다.
  • 하지만 AWS API를 그대로 사용한다면 지수 백오프를 실행해야한다.

시험에서는 재시도 해야 하는 경우를 고르는 문제가 시험에 자주 출제되니 주의하길 바란다.

  • 자체 SDK를 실행하는 경우나 자체 사용자 정의 HTTP를 호출하는 경우 서버 오류가 발생하면 재시도 매커니즘을 실행해야 한다.(5xx 에러)
  • 4xx 클라이언트 오류에서는 재시도나 지수 백오프를 실행해서는 안된다! 이 경우에는 재시도하면 동일 오류가 발생한다.
  • 지수 백오프의 개념은 더 시도하고 대기하면서 많은 클라이언트가 동시에 이 작업을 실행하면 그 결과로 서버의 부하가 줄어들며 서버에서 가능한 많이 응답할 수 있도록 하는 것이다.

AWS CLI Credentials Provider Chain

  • 먼저 CLI를 사용하면 이어지는 명령에서 자격 증명을 요청한다.
    • 살펴보아야 할 사항 + 우선순위
      1. Command Line Options
      2. Environment variables(환경 변수)
      3. CLI credentials file
      4. CLI configuration file
      5. Container credentials
      6. Instance profile credentials
  • 두 번째로 SDK를 살펴볼 때 우선순위(Java 기준)
    • Java system properties
    • Environment variables
    • The default credential profiles file
    • Amazon ECS container credentials
    • Instance profile credentials
  • 자격 증명 모범 사례
    • 절대로 자격 증명을 코드에 저장하지 말 것!!
    • AWS에서 작업을 실행하면 최대한 많이 IAM 역할을 사용해야 한다는 뜻이다.
    • 각 서비스는 각 서비스만의 역할을 사용하고 서비스를 사용하려면 IAM 역할을 최대한 많이 사용해라.

'AWS' 카테고리의 다른 글

Section 13. Amazon S3 고급  (2) 2024.10.02
Section 7. ELB+ASG  (0) 2024.10.02
Section 11. Amazon S3  (0) 2024.09.26
Section 10. VPC(Basic)  (0) 2024.09.26
Section 9. Route 53  (0) 2024.09.26