AWS

AWS Organization - 계정 관리와 대금/지원에 관해

S_N_Y 2024. 3. 11. 23:48

 

여는 말 : AWS Organization이란?👩‍👩‍👧‍👧

아주 간단한 글로벌 서비스로 조직을 생성해서 여러 AWS 계정을 관리할 수 있는 서비스이다.

주 계정은 마스터 계정으로 부르고 그 외 다른 계정은 모두 하위 계정이라고 한다.

 

AWS Organization을 사용하면 과금에서 비용적 이점이 있어서 많이 사용한다.

=> 왜냐면 1. 모든 계정에 대한 비용을 마스터 계정으로 지불하고 2. 종합 사용량에 대한 혜택도 있기 때문

=> 그리고 한 계정이 3. 예약형 인스턴스를 사용하고 있지 않을 때, 다른 계정이 이를 사용할 수 있어 비용 절감

=> AWS 계정 생성을 자동으로 수행할 수 있는 4. 자동화 지원 API도 있다.

=> 서비스 제어 정책(SCP)를 사용해서 5. 계정의 권한을 제한할 수 있다.

 

+) 서비스 제어 정책(SCP) : 어떤 계정이 어떤 권한을 수행할 수 있는제 제한하게 해주는 것

IAM 작업을 화이트 리스트/블랙 리스트로 올리거나 OU 혹은 계정 수준에 적용

(SCP는 마스터 계정에는 적용 X - root, 일반 유저 가능)

단, 서비스 역할(role)에는 적용되지 않는다. => 서비스 역할은 다른 서비스를 조직에 통합할 때 사용

=> 결론적으로 SCP가 특정 서비스에 대한 액세스를 제한할 때 쓰인다는 것이다.

- Root OU로부터 상속받은 사항이 있는 경우에는 Master Account에 적용한 SCP는 효과를 보이지 X

- Account A에 AuthorizationRedShift SCP가 주어졌어도 OU 수준에 DenyRedShift SCP가 있어서 아무 쓸모가 없게 된다.

 

+) AWS Organizations를 위한 통한 과금 방식에 대해

모든 계정에 대한 사용량을 하나로 결합한다(단일 청구서)

=> 예약 EC2 인스턴스나 볼륨 가격을 공유할 수 있어서 좋다.

 

#0 AWS Control Tower - 여러 계정 한꺼번에 환경 자동 설정⚙️

모범 사례를 바탕으로 안전하고 규정을 준수하는 여러 계정 AWS 환경을 쉽게 설정하고 제어할 수 있도록 지원한다.

수동으로 조직을 생성하고 또 보안 작업을 일일이 적용하는 수고로움 대신에 Control Tower을 이용해 클릭 몇 번으로 여러 계정이 있는 AWS 환경을 자동으로 설정/구축할 수 있다. 가드레일을 이용해서 지속적인 정책 관리를 자동화할 수도 있다. 정책 위반을 탐지해서 이를 해결할 수도 있다! 그리고 대시보드를 통해 규정을 준수했는지의 여부를 모니터링할 수 있다.

Control Tower는 AWS Organizations보다 더 상위에서 실행되는데 왜냐면 사용자의 계정을 관리하기 위해 자동으로 Organizations을 설정하고 SCP(서비스 제어 정책)을 실행한다는 뜻이다.

 

#1 AWS RAM(리소스 액세스 관리자 서비스) - 타 계정까지 리소스 공유하기🔄

이 서비스는 계정에서 소유하고 있는 리소스를 다른 AWS 계정(아무 계정, Organizations내 다른 계정)과 공유할 수 있게 해준다. => 이렇게 하면 리소스 중복을 피할 수 있다.

VPC를 공유했기 때문에 VPC내에 모든 리소스가 네트워크 관점에서 서로 연결할 수 있으므로 배포를 간소화할 수 있다..!

 

#2 AWS Service Catalog - 관리자가 사전에 정의해둔 스택에 사용자가 접근

사용자가 AWS에서 하고 싶은 건 뭐든 할 수 있도록 옵션을 주면, 사용자가 만든 것이 Organizations의 나머지 부분과 일치하지 않을 수 있다. 그리고 일부 사용자는 '셀프 서비스 포털'에 액세스해서 승인된 제품들로 시작하길 바랄 수밖에 없는데 이런 것들을 관리자가 미리 정의해두면 좋고 그렇게 해야 한다..! 

=> 셀프 서비스 포털을 활용하려면 AWS Service Catalog를 사용해야 한다.

AWS Service Catalog의 관리자는 제품을 만들 수 있다. 위의 그림에서는 적절한 매개변수가 있는 CloudFormation 템플릿이다. 그리고 이것을 포트폴리오(제품들의 모음)에 넣을 수 있다. 그리고 포트폴리오 내에서 누가 어떤 제품을 출시할 수 있는지 정의한다. 

상용자가 AWS Service Catalog의 포털에 로그인하면 권한에 따라 포트폴리오에 있는 제품 중 사용할 수 있는 모든 제품이 표시된다. 사용자가 lunch하면 자동으로 CloudFormation에서 프로비저닝된다!

 

#3 AWS 요금제 모델 알아보기

 

AWS에는 네 가지 요금제 모델이 있다.

1. Pat as you go(선불 종량제) : 사용한만큼 내는 요금제. 민첩성과 대응력이 뛰어나 필요에 따라 스케일링할 수 있다.

2. Save when you reserve(예약 할인 모델) : 위험도를 최소화하고 예산을 예측해서 장기적인 요구사항을 준수할 때 이용한다. - EC2 예약시 많이 사용

3. Pay less by using more(사용량 증가에 따른 할인 모델) : 볼륨 기반으로 할인을 제공 - S3에서 볼 수 있다.

4. Pay less as AWS grows(AWS개발함에 따른 할인 모델)  : AWS 인프라를 개발함에 따라 비용 절감이 발생하는데 이 혜택을 유저한테도 돌려주는 것 - 규모의 경제라는 이점을 고객한테도 돌려줌 

 

IAM, VPC, Consoildates Billing(통합 과금), Elastic Beanstalk, CloudFormation, ASG -> 무료

(단, 이 서비스가 생성하는 부가 항목에 대해서는 비용을 지불해야 한다.)

 

< 여러 서비스에 대한 요금제 알아보기 >

[ Compute section ]

- EC2

온디맨드 방식으로 사용한 만큼만 비용을 지불

(인스턴스 수, 인스턴스 구성, CPU/RAM 용량, 사용하는 region, EC2 인스턴스를 설치한 운영 체제나 소프트웨어, 인스턴스 유형과 인스턴스 크기, 로드 밸런서 실시한 시간, 세부 모니터링 활성화 등 요금이 책정) 

최소 대금 책정 시간은 60초 (Linuz, Windows는 초당 비용 지불, 나머지는 시간당 비용 지불)

+) Spot Instances(스팟 인스턴스)사용하지 않는 EC2 인스턴스의 용량을 입찰하는 방식으로 큰 할인을 받을 수 있는데 다른 사람이 더 큰 금액에 입찰하면 잃을 위험이 있다.

 

- Lambda & ECS

Lambda는 API 호출 당 람다 함수의 사용 시간람다 함수에 대해 할당한 RAM용량을 곱한 값에 대해 비용을 지불한다.

ECS에 대해서는 EC2 실행 유형 모델이 있는데 이때 ECS 사용료는 내지 않지만 ECS 클러스터 내에서 EC2 인스턴스를 시작할 때마다 해당 EC2 인스턴스에 대해서는 비용을 지불해야 한다.

 

- Fargate

EC2 인스턴스를 관리하지 않으므로 각 컨테이너마다 할당되는 CPU와 메모리의 양에 대한 비용을 지불한다. 

 

[ Storage section ]

- S3

객체의 수와 크기에 대한 비용을 지불

(볼륨과 객체의 수, 객체의 크기에 따라서 받을 수 있는 할인이 증가)

S3에 대한 요청을 수행할 때에도 해당 요청에 대한 비용을 지불

S3 region 외부로 가는 데이터 전송 시에도 요금 지불 (S3로 데이터를 보내는 건 무료)

S3 Transfer Acceleration을 사용할 때 비용 지불

스토리지 클래스 간 수명 주기 전환을 수행할 때 지불

+) 이와 비슷한 서비스인 EFS사용량에 따라 비용을 지불. Infrequent Access와 수명 주기 규칙이 있다는 점에서 유사성을 찾을 수 있다.

 

- EBS

EBS는 프로비저닝한 볼륨 유형에 따라서 요금이 형성 (해당 볼륨의 성능을 보는 것 - 미리 프로비저닝한 볼륨을 기가바이트 크기로 산정)

사용량에 대해서가 아니라 EBS에서 100GB의 볼륨을 사용한다고 정하면 해당 볼륨을 사용 여부에 상관없이 비용을 지불하는 것 

볼륨의 성능, 즉 IOPS도 같다. 범용 SSD인 경우에는 포함되어 있으나, 프로비저닝된 IOPS의 경우에는 IOPS 프로비저닝 비용을 내야 한다. 

Magnetic의 경우, 요청 횟수별로 비용 발생

SnapShots의 경우, 스냅샷을 더 많이 생성할수록 비용 발생

Data transfer의 경우, EBS 외부로 전송하는 데이터마다 비용 발생

 

- RDS

시간당 요금이 책정. (선택한 데이터베이스별로 요금제 상이)

온디멘드 구매 타입이나 예약 RDS 타입이 있다. 

RDS 백업을 실행한다면 그에 다른 비용도 지불해야 한다.

(단, 기본적으로 한 region에 대해 전체 데이터베이스 스토리지의 100%까지는 비용 청구가 없다.)

AWS를 직접 사용해보면 실질적으로 데이터베이스를 꽉 채워서 사용하는 일이 없어서 백업은 무료라는 것이다.

RDS 기본 스토리지에 대해서는 비용을 지불해야 한다.

(이는 RDS 데이터베이스에 대해 프로비저닝한 EBS 볼륨을 기반으로 월별 기가바이트 단위로 책정된다.)

 

- CloudFront

글로벌 서비스이기 때문에 콘텐츠가 전송되는 서버에 따라 요금제가 달라진다. (region에 따라 가격 상이)

특정 엣지 로케이션에서 CloudFront 사용하는 비율이 높아질수록 더 많은 할인을 받을 수 있고 모든 엣지 로케이션에 대한 통합 대금 청구서를 지원한다.

CloudFront에 접수된 요청의 수에 따라 비용을 지불한다.

 

+) 네트워킹 비용도 발생하는데 Public IP보다 Private IP를 이용하는 것이 네트워크 성능에도 좋고 가격적인 측면에서도 좋다. 그리고 Savings Plan(절약 요금제)도 있다. (인스턴스를 예약 등)

 

++)

<Compute Optimizer>

Compute Optimizer는 우리의 워크로드에 맞는 최적의 AWS 리소스를 추천해서 비용을 절감하고 성능을 개선할 때 사용한다. 즉, EC2 인스턴스와 오토 스케일링 그룹을 분석해서 어떤게 초과 프로비저닝 혹은 과소 프로비저닝이 되었는지 살펴보고 최적화를 구축할 수 있다. (비용과 성능 측면에서 더 나아질 수 있다)

 

#4 과금 및 비용 관련 도구에 관하여

분류 별로 이렇게 정리할 수 있다.

1. 클라우드에서 비용을 추정 : Pricing Calculator

2. 클라우드의 비용을 추적 : Billing DashBoard, Cost Allocation Tags, Cost ans Usage Reports, CostExplorer

3. 예산 대비 비용을 모니터링 : Billing Alarms, Budgets

 

<1 - 클라우드 비용 추정>

Pricing Calculator(AWS 요금 계산기)

클라우드에서 비용을 추정할 때 쓰는 것으로 특정 솔루션 아키텍처에 대한 비용을 추정해준다.

(원하는 서비스에 원하는 옵션 선택하면 대충 어떤 가격이 나오는지 알려주는 툴이라고 생각하면 된다)

 

<2 - 클라우드 비용 추적>

Billing DashBoard

클라우드 비용을 관리하는 방법 중 하나로 이번 달의 모든 비용같은 것들을 대시보드로 보여준다. 

Cost Allocation Tags

더 상세하게 비용을 추적하고 분류할 수 있다.

'AWS 생성 태그'라는 것을 이용해서 생성하는 리소스에 자동으로 태그가 적용되도록 할 수도 있다. 

그룹을 만드는 데에도 태그를 사용할 수 있다. 태그는 리소스를 정리하는 데에도 쓰여서 사용성이 좋다.

이런 식으로 Excel문서로 카테고리별 비용을 알 수 있다.

Cost ans Usage Reports - AWS에서 생성할 수 있는 보고서

Cost ans Usage Reports를 통해 비용과 사용량에 대해서 깊이 있게 알아볼 수 있다. (여기 나오는 항목 중 가장 종합적인 비용과 사용량 데이터를 모아주는 툴일 것임) 각각 서비스 카테고리에 대한 AWS 사용량을 시간별/일별로 보여주고 비용 할당을 위해 활성화시킨 모든 태그도 포함시켜 보여준다.

=> 이 리포트를 통합하고 분석하는 데에는 Athena, Redshift, QuickSight를 사용할 수 있다.

Cost ans Usage Reports 모습

Cost Explorer 

시간에 따른 비용과 사용량을 이해하고 관리하는 데 사용하는 시각화 도구

비용과 사용량 데이터를 분석하는 커스텀 보고서도 생성 가능하다.

CostExplorer를 사용하면 적정한 Saving Plan을 통해서 청구 비용을 줄일 수 있다고 한다.

+) 12개월까지의 예상 사용량을 이전 사용량에 기반하여 얻을 수도 있다..!

 

<3 - 청구 관련 모니터링>

Billing Alarms

예상 비용을 보여주는 것이 아닌 실제 비용을 그래프로 보여주는데 어느 임계점이 오면 이메일 청구 알람을 설정할 수 있다. (Budgets만큼 강력하지는 X)

Budgets

예산이 초과될 때 알람을 보내는데 매우 유용

사용량, 비용, 예약, 절약 요금제 예산을 만들 수 있다.

(예약 인스턴스의 경우 사용률을 추적할 수 있다)

 

#5 머신러닝과 쿼터로 이상 탐지받기

AWS Cost Anomaly Detection (비용 이상 탐지) - 머신러닝으로 개인 비용 탐지🛜

비용 및 사용 데이터를 지속적으로 모니터링한다. (머신러닝을 사용해서 비정상적인 지출을 감지)

머신러닝을 이용하기 때문에 사용자의 고유한 과거의 패턴을 학습하고 비용이 급증하는 것을 감지시켜준다. 

 

AWS Service Quotas(서비스 쿼터) - 쿼터로 비용 탐지🛜

AWS 내에 제한이 있다는 개념이다. 이러한 한도를 쿼터라고 하는데 AWS 전반에서 모든 쿼터를 모니터링하고 CloudWatch 알람을 통해 쿼터에 대한 경고를 받을 수 있다. 콘솔에서 직접 쿼터를 증량할 수도 있다.

리소스 종료 여부도 결정할 수 있다 

 

#6 AWS Trusted Advisor

계정에 대해 높은 수준의 평가 의견을 제공하는 서비스로 몇 가지를 알아서 확인한 뒤에 사용자에게 제안을 하는 것이다. 

 

✅짤막한 개념 정리

Compute Optimizer : 리소스 구성에 대한 추천