Services Overview


중국 내에서 클라우드 서비스는 오직 Alibaba Cloud만 사용할 수 있다.
중국에서 사업하려면 ICP License(개인정보 관련?)를 취득해야 하는데 Alibaba에서 해당 부분을 처리해준다고 한다.


Spec

Single Instance Availability = 99.975%
Multi-Zone Instances Availability = 99.995%
Initiate or Release 100 Instances in 10 minutes
Alibaba의 X-dragon 가상화 플랫폼은 AWS의 Nitro보다 성능이 뛰어나다고 한다.


Services

Alibaba ECS(Elastic Compute Service) = Amazon EC2

Alibaba OSS(Object Storage Service) = Amazon S3

주문 제작형 CPU
- RISK
- 적은 명령어의 사용으로 Router, Switch 등의 장비에 주로 사용된다.
- 개당 단가는 저렴하지만 한 번에 매우 많은 양을 주문해야 한다.
- FPGA(Field Programmable Gate Array)
- 개당 단가가 비싸다.
- 프로그래밍이 가능한 내부 회로가 포함되어 있어 CPU에 프로그래밍을 구현할 수 있다.

HPC(High Performance Compute)

Express Connect = 전용선
SAG(Smart Access Gateway) = 모바일 기기 등에서 CEN(Alibaba 내부 네트워크)으로 접속할 수 있게 함

RAM = AWS IAM


3-Tier Architecture on Alibaba Cloud


ECS


Architecture

Region - VPC - Zone - VSwitch(Subnet) - ECS

IaaS까지 Alibaba에서 관리해준다. OS부터 Applications 단까지의 직접 관리를 위해 DevOps가 필요한 것.
PaaS까지 관리를 원한다면 Runtime까지의 관리를 맡기고 Data와 Applications에 대한 부분만 관리하면 된다.


Alibaba에선 Zone이 Data Center 그 자체이다.


Multi-Zone : HA/DR
Single Zone : Low latency

Zone 간 통신 : Private IP
Region 간 통신 : Public IP


Instance Type

최신 세대의 인스턴스 타입일수록 고성능/저가로 제공되기 쉽다.
규모경제의 이점으로 인한 결과.


요금 체계

Pay as you go (PAYG) : On-demand
Subscription : 장기간 지속적 사용에 유리. 계약 중 인스턴스 타입 변경 불가
Preemptible Instance : 남아있는 리소스를 선점하여 사용(=Spot Instance in AWS)
Reserved Instance : Subscription과 비슷하지만 일정 범위 내에서 인스턴스 타입 변경 가능


Disk

Pangu 분산 파일 시스템을 통해 Zone별로 스토리지를 분산시켜 저장한다.
고가용성과 빠른 I/O를 가져갈 수 있다.

블록 스토리지는 Zone 종속이기에 다른 Zone의 인스턴스에 연결될 수 없다.

Ultra Disk : 일반적인 디스크
Standard SSD : 5배의 IOPS 및 약 2배의 throughput
Enhanced SSD : 최고 성능 디스크

12 nines 내결함성을 지닌다.


Disk Snapshot

- Routine Backup 가능
- Custom Image를 떠서 사용 가능
- 테스팅 목적으로 사용 가능

증분 스냅샷 방식 사용


Security Group & Key

일반과 Advanced 두 가지가 있는데, Advanced는 VPC 전체에 통합적으로 적용되는 것이다.
여러 개의 Zone에 하나의 SG를 적용시켜 사용 가능(allow cross-zone instances).

SSH Connect


EIP

- 고정 공인 IP
- ECS 인스턴스 간에 reattach 가능
- 외부로 서비스할 때 사용(SLB에 물려주는 등)


ENI

네트워크 인터페이스로 인해 ECS 인스턴스가 VPC 안에 있는 것처럼 잡히는 것.
하나의 ECS에 여러 ENI를 추가하고 여러 VPC에 연결이 될 수도 있다고 한다.


Additional Settings

메타데이터와 유저데이터 확인 명령어

$ curl http://100.100.100.200/latest/meta-data

 

$ curl http://100.100.100.200/latest/user-data

VPC


VPC를 생성할 때 우측에 Architecture Preview를 띄워주는 기능이 매우 좋다.


오피스에서 자주 사용되는 SAG는 CEN(Alibaba Inter-region Backbone Network)으로 연결될 수 있다.
VPN, Express Connect는 기업에서 사용된다.


NACL & Security Group

NACL은 VSwitch 레벨로 적용
NACL은 Stateless이므로 Inbound와 Outbound Rule을 모두 만들어주어야 함
Priority 존재. 낮을수록 우선도 높음

Security Group은 VPC 레벨에서 정의되지만 ECS 레벨로 적용됨
화이트리스트 방식 : default all deny


SLB


HA : Multi-Zone 구성으로 99.95% 고가용성
Scalability : Auto Scaling
Low cost : 하드웨어 LB에 비해 60% 정도 저렴
Security : 내부적으로 5Gbps 정도의 DDoS 방어

CLB
L4 : TCP/UDP 트래픽은 포트 번호 기반으로 LVS(Linux Virtual Server)에 의해 부하분산
L7 : HTTP/HTTPS 트래픽은 URL 정보 기반으로 Tengine에 의해 부하 분산

ALB
HTTP/HTTPS 뿐만 아니라 QUIC 등 다양한 기능이 더 있음.

QUIC : Quick UDP Internet Connections. TCP와 UDP의 장점을 따서 만든 프로토콜.


요금 체계

Public Network SLB : Pay as you go
Private Network SLB : Free

Micro Service 하나당 LB 하나를 매핑해서 사용한다.


Forwarding Rules

Round Robin (RR) : 단순히 돌아가며 분배. ECS마다 성능이 다를 수 있고, Session stickiness를 감안하지 않음
Weighted Round Robin (WRR) : 인스턴스마다 지정한 가중치를 기반으로 분배
Weighted Least Connections (WLC) : 가장 커넥션이 적은 인스턴스 중 가중치를 기반으로 분배


Backend Server Group

Master-slave Server Group : RDS 등을 이용할 때 이중화 구성을 하는 데에 사용되는 그룹 방식
Vserver Group : 일반적인 Auto Scaling 그룹


Health Check

HTTP Head Health Check, TCP 3-Way Handshake, UDP Health Check(ICMP Unreachable이 뜨면 서버가 살아있다는 뜻) 등을 통한 헬스 체크


Limitation

Cross-region Load Balancing 불가. Cloud DNS를 통해서 구현 가능


Module 9 : 안전하고 복원력 있는 네트워크 운영


인터넷 통신을 위한 3단계

1. IGW 구성

2. 라우팅 테이블 경로 설정

3. 퍼블릭 서브넷의 EC2 인스턴스에 퍼블릭 IP 부여

 

NAT Gateway

아웃바운드 트래픽에게 힌시적(일회성)으로 퍼블릭 IP를 부여해 줌

 

NACL

- Default all permit

- 규칙 우선도 지정

- Stateless

 

Security Group

- Default deny all inbound

- Default permit all outbound

- Stateful

 

VPC Peering

- 인터넷을 통하지 않고 격리를 유지한 채로 VPC 간 통신

- AWS 네트워크를 통해 통신

- 서로의 라우팅 테이블에서 대역을 잡아준다.

 

데이터 센터에 대한 VPN 연결

가상 프라이빗 게이트웨이(VGW)를 통해 VPN을 맺는다.

 

Transit Gateway

- VPC Peering은 전이적 Trusting 지원이 안 되기 때문에 다중 VPC Peering 시에 TGW를 통해 허브같은 역할을 처리

- 최대 5000개 VPC 연결 가능

- 데이터 센터와 VPN 연결도 가능

 

VPC Endpoint

- Interface Endpoint

    - EC2 인스턴스와 AWS 서비스를 연결

    - AWS 네트워크를 통함

    - ENI에 연결

- Gateway Endpoint

    - DynamoDB와 S3만 지원

    - AWS 네트워크를 통함

    - VPC에 연결


Route 53 Resolver (Hybrid)

Route 53에 DNS 쿼리를 했을 때 AWS VPC 뿐만 아니라 온프레미스 환경에 대한 도메인도 함께 얻을 수 있는 서비스

 

Amazon VPC Flow Logs

게시 대상: Amazon CloudWatch Logs, Amazon S3

캡처 수준: VPC, Subnet, ENI

지원: 보안 그룹 제한성 진단, 인스턴스에 도달하는 트래픽 모니터링

 

Amazon CloudFront

- 캐싱으로 레이턴시 감소

- DDoS 완화

- SSL 인증서 지원

- HTTP/2 지원

- S3 Bucket Logs 지원

 

AWS WAF

SQL Injection, XSS, HTTP Flood 등 위협을 맨 앞단에서 차단

- 구성 순서

    1. 웹 ACL 생성

    2. 리소스 유형 정의

    3. 규칙 추가(관리형 규칙, 사용자 지정 규칙)

    4. 동작(허용/차단) 설정

    5. 규칙 우선 순위 설정

    6. 지표 구성(CloudWatch)

 

AWS Shield

관리형 DDoS 보호 서비스

- AWS Shield Standard

    - 무료

    - 3, 4계층 검증

- AWS Shield Advanced

    - 유료

    - 7계층까지 검증

    - WAF와의 통합, CloudFront 배포 기능 제공

 

AWS Certificate Manager (ACM)

- 인증서에 대한 프로비저닝, 배포 및 중앙 집중 관리

- SSL, TLS 통신에 사용

 

문제 해결

서브넷의 인스턴스가 서로 통신하지 못한다.

- NACL, SG 확인

- VPC Flow Logs 확인

 

NAT 구성이 작동하지 않는다.

- 라우팅 테이블 구성을 확인

- NAT Gateway가 Public Subnet에 위치하는지 확인

 

피어링된 네트워크의 리소스에 연결할 수 없다.

- 피어링 요청/승인 확인

- 라우팅 테이블 확인

- NACL, SG 확인


Module 10a : Mount 가능한 스토리지


Instance Storage

- 짧은 대기시간

- 높은 IOPS 및 처리량

- 인스턴스 중지 또는 종료 시 반환됨(휘발성)

- 사용 사례 : 버퍼, 캐시, 스왑 파일, 페이지 파일

 

Amazon EBS (Elastic Block Storage)

- 네트워크 연결

- 영구 블록 스토리지

- 부팅 및 데이터 볼륨이 지원됨

- USB 구매하는 것과 같이 사용량과 관계없이 최초 지정 용량만큼 과금 (온디맨드가 아님)

- 독립적 사용 불가. EC2 인스턴스에 연결해서 사용해야 함

    - EC2에 붙기 때문에 EBS도 AZ 레벨 서비스이다(다른 AZ의 EC2에 Attach 불가).

- Detach, Attach를 통해 데이터 이동의 용도로 사용 가능

- USB와 다른 점

    - 동시에 여러 EC2 인스턴스에 연결 가능(같은 AZ에서 최대 16개 인스턴스에 Attach 가능)

    - 크기와 유형 수정 가능 (6시간 쿨타임)

- RAID 0, 1 지원

- SSD 지원 볼륨

    - 범용(gp2) : 1GiB 당 3IOPS, 최대 16000IOPS

    - 프로비저닝된 IOPS : 볼륨 사이즈와 IOPS 수치를 정해 딱 맞게 프로비저닝시킨다.

- HDD 지원 볼륨

    - 처리량 최적화 : 처리량이 많다.

    - 콜드 : 자주 액세스하지 않는 워크로드를 위한 가장 저렴한 볼륨

- Auto-Enabled IO : 데이터 불일치를 탐지한 볼륨에 IO 작업을 계속 할 것인지(Fsck 명령어 참조).

 

EBS 스냅샷

- 증분 스냅샷

    - 불필요한 중복 정보가 스냅샷에 포함되지 않게 하여 효율적이다.

- 리전 간 스냅샷 복제 및 공유 가능

- 일관성 있는 스냅샷 생성

    - 애플리케이션 중지 또는 정지

    - Linux : fs_freeze

    - Windows : AWS Systems Manager Run Command 사용 

- 스냅샷 복원

- 스냅샷 수명 주기 관리

    - 정책에 따라 스냅샷 백업, 리전 간 복제, 복원 등 자동화

 

AWS Backup

백업 계획 생성 : 빈도, 수명 주기 설정

리소스 할당 : EBS, RDS 등...

백업 저장소 관리 : S3에 저장

 

Amazon EFS (Elastic File System)

- 서브넷 단위로 탑재대상을 구성해 해당 서브넷의 인스턴스들이 접근할 수 있게 한다.

- ENI에 탑재된다.

- FSx : for Windows

- FSx for Lustre


Module 10b : 객체 스토리지


Amazon S3 (Simple Storage Service)

- 인터넷용 오브젝트 스토리지

- 리전 레벨

 

Amazon S3 복제

CRR(Cross Region Replication), SRR(Same Region Replication) 활성화

CRR 장점 : 내결함성, 접근성이 높다

 

Public Access 차단

Account Setting에서 설정하면 계정 내 모든 버킷에 대해 퍼블릭 접근을 차단한다.

개별 버킷에 대해 설정 가능하다.

- Access Analyzer 지원

- Access Logs 저장 가능 (또 다른 버킷에 저장)

 

Amazon S3 이벤트 알림

- SQS 대기열

- SNS 알림

- Lambda 함수

 

Amazon S3 버전 관리

버전 관리 기능을 활성화해 버전별로 관리해서 복구가 가능하게 한다.

 

Amazon S3 객체 잠금 모드

- governance mode

    - 변경 X

    - 삭제 X

- compliance mode

    - 변경 X

    - 삭제 X (Account 포함)

 

S3 Intelligent-Tiering

Standard, Standard IA(Infrequent Access), One Zone IA, Glacier, Glacier Deep Archive 등 여러가지 티어로 AWS에서 지능적으로 데이터를 옮기고 관리해준다.

 

S3 수명 주기 작업

- 수동적으로 정의해서 자동화시킬 수도 있음

- 대상 지정 후 동작 선택

 

S3 Glacier

- 데이터 하나하나가 아카이브

- 아카이브들이 있는 곳이 저장소

- 호출 옵션

    - 신속 : 1~5분

    - 스탠다드 : 3~5시간

    - 대량 : 5~12시간

    - SNS를 통해 완료 알림 수신 가능


Module 11 : 비용 보고서, 알림, 최적화


과거, 현재, 미래 비용 인식

지출 변화 파악 요구

 

AWS 계정 기록

- 결제 대시보드

- pdf 포맷 청구서

 

AWS Cost Explorer

- 가계부같은 개념

- 최대 13개월치 기록을 볼 수 있음

- 데이터 그룹화 및 필터링

- 바, 스택, 라인 3가지 시각화 타입 지원

- 일별, 월별 Forecast 제공

 

AWS CUR (Cost and Usage Report)

- 보고서 생성 요청 시 지정한 S3 버킷에 보고서를 저장한다.

- 버킷 처리 지원

    - Amazon Athena

    - Amazon QuickSight

    - Amazon RedShift

    - text/csv

 

AWS CUR 쿼리 자동화

1. CloudWatch Events(시간 기반)

2. AWS Lambda

3. Amazon S3

4. Amazon SNS

 

AWS Budgets

- 비용 또는 사용량이 임계값을 초과할 경우 알림을 생성하거나 조치를 트리거링한다.

- 고정 지출 및 유동적인 지출에 대해 예산 설정

- Amazon Chime 또는 Slack으로 AWS Chatbot을 통해 알림 가능

 

AWS Cost Management

- 사용률이 높지 않은 비용이 발생하는 제품 확인

- Savings Plan 및 현재 비용과의 차이 확인

 

AWS Trusted Advisor

AWS Support Plan이 비즈니스 레벨 이상일 때 비용 최적화에 대한 안내까지 제공

- Amazon EC2 예약 인스턴스

- 사용률이 낮은 리소스 확인

- 기타 14가지 점검

 

AWS Compute Optimizer

AWS 인프라 및 CloudWatch 지표 기반으로 머신 러닝을 통해 워크로드에 더 나은 AWS 리소스 추천

 

새로운 인스턴스 타입

새 인스턴스 타입은 보다 효율적으로 하드웨어 리소스를 사용하기 때문에 새 인스턴스 타입 출시 시 사용하는 것이 비용 효율적일 수 있다.

 

 


 

AWS 한국 블로그

https://aws.amazon.com/ko/blogs/korea/

 

Amazon Web Services 한국 블로그

오늘부터 Amazon Simple Storage Service(Amazon S3)용 AWS Backup 평가판을 사용해 볼 수 있습니다. AWS Backup은 완전관리형 정책 기반 서비스로, Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스, Amazon Elastic Block Store(EBS

aws.amazon.com

 

AWS 새로운 소식

https://aws.amazon.com/ko/new/

 

AWS의 새로운 소식 – 클라우드 혁신 및 뉴스

Internet Explorer에 대한 AWS 지원이 07/31/2022에 종료됩니다. 지원되는 브라우저는 Chrome, Firefox, Edge 및 Safari입니다. 자세히 알아보기

aws.amazon.com

 

AWS 공식 강좌 (한국어/무료)

https://explore.skillbuilder.aws/learn/external-ecommerce;view=none?ctldoc-catalog-0=l-_ko

 

Loading

Loading your learning experience...

explore.skillbuilder.aws


Module 7 : 시스템 상태 모니터링 및 유지 관리


AWS CloudWatch

- Metric(지표)

    - key:value(cpu:80)

    - 표준 지표 : AWS에서 수집하여 자동적으로 제공

    - 사용자 지표 : App 성능 지표에 따라 사용자 설정

    - 디폴트 수집 간격 : 5분

        - Detail Monitoring 선택 시 1분 간격 수집 + 추가 비용

        - 사용자 지표 사용 한정 초 단위 주기 설정 가능

- logs

    - App, DB 서버 등의 로그를 텍스트 형태로 적재

    - Filter 기능을 통해 Key:Value 형태로 변환 가능

        - 설정한 Agent가 CloudWatch로 보내 Metric으로 사용 가능

    - 텍스트 형태 데이터이기에 저장 비용이 비싸다.

        - 그래서 S3에 보관하는 것을 권장

- Alarm(경보)

    - 설정한 Metric 임계값에 따라 Event Driven으로 Auto Scaling, SNS 이벤트 알림 또는 Lambda 로직 수행 가능

    - 상태

        - Alarm : 지표가 임계값에 도달

        - OK : 지표가 임계값 미만

        - Insufficient : 지표에 대한 데이터가 불충분

- Event

    - Rule Event (Event 대처 자동화)

        - 대상 지정 → 상태 지정 → 처리

            - ex) EC2 인스턴스 1번 → stop 상태 → 관리자에게 SNS

    - Schedule Event

        - 지정 시간에 Lambda 함수 등을 실행할 수 있다.

            - ex) 오전 8:50 개발용 인스턴스 start, 오후 6:00 개발용 인스턴스 stop


Auto Scaling (Advanced)

기존 EC2 인스턴스에 대해서만 적용되는 Auto Scaling이었지만 점점 그 가용 범위를 넓혀가고 있다.

 

 

Auto Scaling 효율성

인스턴스가 뜨는 시간으로 인해 스케일링 시 즉각적인 반영이 어렵다. 때문에 AMI와 user-data 스크립트 등을 조정해 효율성을 높여야 한다.

- AMI Baking 전략

    - Raw Bake : 환경이 바뀔 것을 고려해 최소한의 구성만 이미지로 만든다. 가볍기 때문에 인스턴스가 빨리 뜬다.

    - Half Bake : Raw와 Full 사이

    - Full Bake : 모든 구성을 포함한 무거운 AMI를 만든다.

        - Netflix는 Full Bake 사용

 

Auto Scaling on RDS

DBA가 조정하던 데이터베이스의 스토리지를 Auto Scaling을 통해 자동화 할 수 있다.

- RDS 설정

    1. DB 엔진 선택

    2. EC2 타입 선택 (ex: db.t3.small)

    3. Storage 지정 - Auto Scaling 적용 가능

 

Aurora Read Replica(RR)

Master DB에는 쓰기 작업만 하여 I/O Limit을 줄이고 Aurora 기준 최대 15개 복제본들을 통해 읽기 작업을 한다.

이 때 이 Read Replicas를 Auto Scaling을 통해 관리할 수 있다.



Module 8 : 데이터 보안 및 시스템 감사


IAM Access Analyzer

액세스 권한이 있는 외부 엔티티가 내부 AWS 리소스에 접근을 시도한다면 Access Analyzer가 확인하고 관리자의 정책 설정 실수인지 외부의 악의적인 침입 시도인지 파악해준다.

- 리전 레벨 서비스 : 서울 리전, 도쿄 리전 두 군데에 인프라가 있다면 따로 만들어 사용해야 한다.

- 관리자가 상세 분석된 액세스 정보를 보고 Intended Access 또는 Not Intended의 선택으로 처리할 수 있다.

 

Permission Boundary

Condition - stringEqual 에서 바운더리를 주어 위임된 관리자가 Full 권한의 새로운 Role을 생성할 경우 보안적 위험 요소를 제거한다. Permission Boundary와 해당 사용자의 권한의 교집합으로 실 권한이 결정된다.

 

AWS CloudTrail

- Amazon S3에 계정의 모든 AWS 서비스에 대한 API 호출 상호 작용을 기록

- 접근 성공 뿐만 아니라 권한 부족 등으로 인한 실패까지 기록한다.

- 주요 정보

    - userIdentity

    - eventTime

    - eventName

 

Amazon Athena

SQL을 사용하여 Amazon S3에서 로그 데이터를 분석하는 대화형 쿼리 서비스를 제공한다.

- 서버리스

- S3 버킷 위치만 알려주면 알아서 쿼리해온다.

- 교차 리전 쿼리가 지원됨 (타 리전의 S3).

- Presto 및 Apache Hive 사용 가능

- 데이터를 로드하거나 집계할 필요 없음.

 

AWS Config

- 인벤토리에 포함된 리소스와 연결된 모든 구성 변경 사항에 대한 세부 정보를 지속적으로 캡처

- 규정 준수 모니터링

- 변경 사항 발생 시 SNS 또는 Lambda 로직 연계 수행 가능

 

Amazon GuardDuty

- Multi Account 환경에서 지능형 위협 탐지 가능

- CloudTrail 이벤트, VPC 흐름 로그, DNS 로그에 대해 Machine Learning을 통한 분석

- 세부적인 탐지 결과를 활용하여 블랙리스트/화이트리스트 등 조치를 취한다.

- GuardDuty → CloudTrail Logs → Filtering → CloudTrail Event Rule → AWS Lambda → NACL 조정

    - Lambda 함수에 대해 미리 작업에 필요한 IAM Role을 부여해야 한다.

 

Amazon Inspector

AWS의 보안 전문가가 모범 사례를 지속적으로 올린다.

사례에 따라 탐지하고, 탐지 결과 보고서를 생성한다.

 

인시던트 자동화

AWS Config 및 AWS Systems Manager Automation, AWS CloudTrail, AWS Lambda를 연계해 인시던트 자동화가 가능하다.

 

 


 

AWS Certification Guide

https://github.com/serithemage/AWSCertifiedSolutionsArchitectUnofficialStudyGuide

 

GitHub - serithemage/AWSCertifiedSolutionsArchitectUnofficialStudyGuide: 비공식 AWS 공인 솔루션스 아키텍트 – 어

비공식 AWS 공인 솔루션스 아키텍트 – 어소시에이트 시험 가이드. Contribute to serithemage/AWSCertifiedSolutionsArchitectUnofficialStudyGuide development by creating an account on GitHub.

github.com

 


Module 6a : 고가용성 시스템 구성


Elastic Load Balancing

- 사용자 트래픽의 부하분산

- 타겟 인스턴스의 헬스체크

- 리전 레벨 서비스

    - 인스턴스에 대한 관리

- CLB, NLB, ALB, GLB

- 인스턴스에 대한 SG 설정 가능

- Web - WAS - DB 3Tier 구조의 사이에 ELB 배치 가능

- Auto Scaling 및 CloudWatch를 통한 모니터링 가능

 

ELB Access Logs

- Access logs 옵션을 활성화하고 S3 버킷을 잡아주어 사용할 수 있다.

- gzip으로 압축하여 저장된다.

- 포함되는 정보

    - 요청 타임스탬프

    - 클라이언트 IP 주소

    - 대기 시간

    - 요청 경로

    - 서버 응답

 

ELB HTTP Error Codes

https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-troubleshooting.html#load-balancer-http-error-codes

 

Troubleshoot your Application Load Balancers - Elastic Load Balancing

Troubleshoot your Application Load Balancers The following information can help you troubleshoot issues with your Application Load Balancer. A registered target is not in service If a target is taking longer than expected to enter the InService state, it m

docs.aws.amazon.com


Amazon Route 53

- 리전에 대한 상태 확인 및 장애 조치 수행

- 100% 사용 가능한 서비스 수준 계약(SLA)

- 타 도메인 서비스로부터 도메인 네임을 이전 가능

- Record Set에 Primary, Secondary... 리전 설정

- Health Checker 생성 및 주기 설정

    - 응답이 오지 않을 시 해당 리전에 대해 Record Set 업데이트

- 글로벌 레벨 서비스

    - 리전에 대한 관리

 

Alias 기능

아래와 같이 도메인에 대한 앨리어스가 가능하다.

app.examplecorp.com ↔ web-app.us-west-2.elb.amazonaws.com

 

Route 53 라우팅 정책

- 단순 라우팅 정책

    - 인스턴스를 1개만 사용할 때

- 가중치 기반 라우팅 정책

    - 블루/그린 배포에서 점진적으로 트래픽 비율을 바꿀 때 사용

- 지연 시간 라우팅 정책

- 장애 조치 라우팅 정책

- 지리 위치 라우팅 정책

    - 사용자의 위치에 따라 해당 지역의 언어로 서비스를 제공하거나 특정 지역을 차단해야 할 때 사용

- 지리 근접 라우팅 정책

    - 최소한의 네트워킹 거리를 위해 가장 가까운 엣지 로케이션에 연결

- 다중 응답 라우팅 정책

 


Module 6b : 크기 조정 자동화


EC2 Auto Scaling 구성 단계

1. Launch Configuration(Legacy)/Template 생성

    - 인스턴스 구성

        - 인스턴스 유형

        - 보안 그룹(SG)

        - 인스턴스 키 페어

        - AMI

        - 스토리지

        - IAM 역할

        - 사용자 데이터

2. ASG(Auto Scaling Group) 생성

    - 조정 범위 설정

        - Min

        - Max

        - Desired

    - ELB와 통합 가능

    - 인스턴스를 여러 가용 영역에 분산 및 밸런싱 가능

3. Auto Scaling 정책 선택 및 구성

    - 정책 트리거 방법

        - 예약됨

            - 배치성 업무

        - 수동

        - Amazon CloudWatch 제어

            - 실시간 이벤트(Event Driven?) 모니터링을 통한 동적 제어

            - ex) CPU 사용량 50% 이상 시 인스턴스 1개 추가

    - 확장 또는 축소의 정도

        - ChangeInCapacity

        - ExactCapacity

        - ChangeInPercent

 

Launch Template

- 기능

    - 버전 관리

    - 재사용

    - 업데이트

- 고급 세부 정보 설정

    - IAM 인스턴스 프로파일(Role)

    - 종료 방지(Terminate)

    - 세부적인 CloudWatch 모니터링

    - 라이선스 구성

    - 사용자 데이터 스크립트(=NCP의 Init Script)

 

Auto Scaling Status Checks

- System Status Checks (1/2)

    - EC2 인스턴스가 실제 돌고 있는 물리적인 서버에 대한 상태 점검

- Instance Status Checks (2/2)

    - EC2 인스턴스 자체에 대한 상태 점검

- ELB에서의 상태 체크 옵션도 같이 선택하여 빠른 주기의 검사를 수행할 수 있다.

 

안정된 상태의 Auto Scaling Group 생성

핵심 서비스가 아닌 간단한 서비스를 하나의 ASG로 묶은 후 Min, Max, Desired 값을 모두 같은 값(인스턴스 수)으로 주어 인스턴스 실패 시 새로운 인스턴스를 재시작하게 함으로 부가 서비스들을 안정적으로 운영할 수 있다.

 

Auto Scaling 정책

- 예약된 조정

    - 특정 날짜 또는 시간을 지정한다.

- 동적 조정: 단순 조정 정책

    - 대상 리소스 사용량이 특정 임계값을 초과하면 스케일링 한다.

- 동적 조정: 단계 조정 정책

    - 단순 조정과 유사하나 사용량에 대해 세부적인 단계를 구분하여 보다 효율적인 스케일링을 수행한다.

- 동적 조정: 대상 추적 정책

    - 마치 에어컨 온도 설정과 같이 지표에 대한 지정 값을 설정하면(예: CPU 사용량 50%) 트래픽이 급증하여 CPU 사용량이 50%가 넘어가면 50% 이하로 떨어질 때까지 EC2 인스턴스를 계속 추가하는 방식이다.

- 예측 정책

    - AWS에서 과거의 리소스 증감량 등의 데이터를 기반으로 머신러닝을 통해 예측하여 스케일링 해주는 방식이다.

 

축소 종료 정책 (Termination Policies)

- Default

    - 각 가용영역에 인스턴스가 고르게 분포되도록 Scale In 한다.

- Allocation Strategy

    - ASG에서 인스턴스를 종료하여 나머지 인스턴스를 정의된 allocation strategy에 맞게 정렬해 온디맨드 용량 또는 스팟 용량을 충족한다. 이 정책은 선호하는 인스턴스 유형이 변경된 경우 유용하다.

- Newest Instance

    - 최신 인스턴스를 종료한다. 새로운 시작 구성을 테스트하지만 프로덕션 상태로 유지하고 싶지 않은 경우 유용하다.

- Oldest Instance

    - 가장 오래된 인스턴스를 종료한다. ASG의 인스턴스들의 타입을 변경할 때 점진적인 교체가 가능하다.

- Oldest Launch Template

    - 가장 오래된 런치 템플릿을 가진 인스턴스를 종료한다. 그룹을 업데이트하고 이전 구성에서 인스턴스를 단계적으로 종료할 때 유용하다.

- Oldest Launch Configuration

    - Oldest Launch Template과 같다.

- Closet To Next Instance Hour

    - 다음 번 결제 시간에 가장 근접한 인스턴스를 종료한다. 시간제로 요금이 청구되는 인스턴스의 사용을 극대화할 수 있게 한다.

 

스래싱 방지

스래싱이란 Scale Out/In이 짧은 간격으로 발생해 인스턴스의 생성과 삭제를 지속하는 현상이다(Ping Pong).

- 경보 지속 기간

    - 10분 동안 CPU 사용량이 50% 초과한다면 Scale Out

- 휴지 기간

    - 5분 동안 조정을 일시 중지

- 인스턴스 워밍업 기간

    - 인스턴스가 올라온 후 5분 간 사용하지 않는다.

 

오픈소스 로드 테스트 도구

- The Grinder

- JMeter


EC2 요금 옵션

- On-demand 요금제 (default)

    - 상대비용: 100

    - 원할 때 사용 및 중지 가능

    - 사용한 만큼 시간(Hour) 단위로 지불

    - 새로운 사업 또는 프로젝트 진행 시 사용해보고, 길게 운영할 것 같다면 RI로 전환하는 것도 좋다.

- 예약(RI=Reserved Instance) 요금제

    - 상대비용: 35 (온디맨드 대비 최대 65% 저렴)

    - 1년, 3년, 선불, 부분, 후불 등의 옵션이 있는 약정 형태.

    - 사전 신청 필요

    - 약정 중도 해지 불가

    - 긴 기간 동안 리소스의 유휴 시간 없이 쭉 사용한다면 유리하다.

- Spot Instance 요금

    - 상대비용: 10 (온디맨드 대비 최대 90% 저렴)

    - 시장 가격에 따라 결정

        - 여분 리소스가 많으면 AWS에서 가격을 낮춰 Spot Instance 사용 유도

        - Spot Instance 사용자가 많아 여분 Pool이 줄어들면 가격 상승

        - 사용하고 있는데 시장가가 오르면 2분 전에 알리고 회수해간다.

    - AWS의 여분의 하드웨어 리소스를 제공

    - 시간에 여유가 있고 컴퓨팅 리소스가 중지되어도 괜찮은 경우 사용한다.

    - Spot Instance를 얼마나 많은 비율로 사용하는가에 따라 지불 비용이 크게 달라진다.

 

비용 효율적 Auto Scaling

ASG에서 Scale Out 시 1차 시도로 설정한 가격에 따라 Spot Instance를 생성함으로 하고, 지정 가격보다 시장가가 높다면 2차로 On-demand로 인스턴스를 생성하는 방식 등으로 비용 효율적인 운영이 가능하다.

 

AWS License Manager

타사 제품의 유료 라이센스를 관리해주는 도구이다. 하드웨어 제한을 통해 초과요금이 발생하지 않게 한다.

1. 라이센스 구성 만들기

2. AMI에 라이센스 구성 연결

3. 인벤토리 검색 및 라이센스 추적

4. 알림을 사용하여 라이센스 제어 및 관리

 

문제 해결

오류 메시지: AMI<AMI ID>(은)는 대기 중이며 실행할 수 없습니다.

→ 새로 생성되어 준비 중인 AMI일 수 있다. 조금 기다린 후 재시도해본다.

 

오류 메시지: 요청된 구성이 현재 지원되지 않습니다.

→ 경우에 따라 Launch Template에 구성한 인스턴스 타입(ex: t2.small)의 하드웨어 장비가 해당 AZ에 존재하지 않을 수 있다. 인스턴스 타입을 변경한다.

 


Module 3 : 리소스 배포 및 업데이트


시스템 관리자는 다음과 같은 배포 환경을 보장해야 한다.

- 회사 정책 준수

    - 표준화, 규정 준수 요구 사항

- 반복 가능

    - 템플릿, AMI, 코드형 인프라

- 추적 가능

    - 태그, 소유권, 비용, 조직

- 모니터링 가능

    - 성능, 감사, 규정 준수, 로그, 지표

 

태그

- Key-Value 형태

- 리소스에 대해 메타데이터를 할당

- 관리, 검색, 필터링에 이용

- 많이 붙일수록 좋다.

- 어떤 태그에 어떤 정보를 담을지 태깅 전략을 세워 일관성 있게 한다.

- 대소문자를 구분한다.

 

AMI (Amazon Machine Image)

- 운영체제의 템플릿

- AWS에서 미리 구성해서 제공하는 AMI와 사용자 생성 AMI 두 가지가 있다.

- 리전 범위의 서비스 (서울 리전 안에서만 사용 가능) → 다른 리전으로 복사하여 사용 가능

- Image Builder를 사용해 쉽게 AMI 생성 가능

 

AMI를 다른 리전에 복사

aws ec2 copy-image --source-image-id ami-1234567890bdadf --source-region ap-northeast-2 --region ap-northeast-1 --name "My server"


AWS Control Tower

다중 계정 AWS 환경을 쉽고 빠르게 설정 및 관리한다.

- 랜딩 존 설정 - 기본 뼈대

    - SSO (Single Sign On) and OU (Organization Unit)

        - SSO를 통해 한 번의 인증(로그 아카이브)으로 여러 계정들을 관리 가능

        - 멀티 Account 환경에서 많은 계정들을 중앙 집중식 관리 가능

        - 비용 결제 통합

        - SCPs(Service Control Policies)를 통해 계정에 대한 권한 제어

- 가드레일 적용 - 보안과 규정 준수, 운영

    - 예방 : SCP를 통해 작업 비허용 (default disabled)

    - 탐지 : AWS Config를 통해 규정 미준수 탐지

- 계정 프로비저닝 자동화

- 대시보드 가시성 확보

 

로그와 문제 사항 확인 경로

- https://169.254.169.254/latest/user-data

- /var/log/cloud-init-output.log


Module 4 : 리소스 배포 자동화


AWS에서의 배포 자동화

- 프로비저닝

    - 라이브 서버 업데이트

    - 다중 리전 롤아웃 배포

    - 시스템 종속성 관리

    - 반복 가능하며 동일한 환경 배포

- 문제 해결

    - 롤백 관리

    - 배포 디버깅

    - 모든 변경 사항 문서화

 

AWS OpsWorks

- DSL(Domain-Specific Language)을 사용

- Chef, Puppet, Ansible, Terraform 등을 AWS 환경 내에서 사용할 수 있게 함.

 

AWS CloudFormation

- 구축 프로세스

    1. 템플릿 작성

        - JSON 또는 YAML 문서 작성 

        - Designer를 통해 GUI로 템플릿 생성

    2. CloudFormation 엔진이 해석 및 리소스 생성

    3. 각 리소스를 단일 스택으로 모아 관리

- 리소스 집합을 단일 단위(스택)로 생성, 업데이트 및 삭제 가능

- 스택 및 개별 리소스에서 드리프트(수동 변경) 감지

 

CloudFormation 템플릿 구조와 속성들

- Resources

    - 생성할 AWS 리소스 기술 : EC2, EBS, RDS...

    - 필수 필드 : 논리적 ID(ImageID), 리소스 유형(Type), 리소스 속성(Properties)

    - !Ref 함수로 다른 구성 요소에 대한 참조 가능

    - DependsOn : 웹 서버의 속성으로 DependsOn: MyDB 을 기술하여 종속성을 정의해 DB 서버의 생성 이후에 웹 서버가 생성되도록 한다.

- Parameters

    - 템플릿에 값을 전달하는 데에 사용

    - Pseudo 파라미터를 통해 스택이 시작될 때 자동으로 값을 참조할 수 있다.

- Outputs

    - 템플릿에서 값을 불러오는 데에 사용

- Mappings

    - Key-Value 페어를 저장

    - 내장 함수인 !FindInMap을 사용해 저장된 값을 반환

 

CloudFormation Sample Templates

 

서비스 - AWS CloudFormation

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

 

Console Recoder for AWS (Chrome)

이 확장 프로그램을 실행하고 AWS Management Console 상에서 설정하면 그에 따른 CloudFormation 템플릿을 자동으로 생성해준다.

 

Console Recorder for AWS

Records actions made in the AWS Management Console and outputs the equivalent CLI/SDK commands and CloudFormation template.

chrome.google.com

 

드리프트 감지

AWS CloudFormation에서 드리프트 감지를 활성화한다.

AWS Config에서 cloudfomation-stack-drift-detection-check 룰을 설정하는 방법도 있다.

 

Cloud Formation Helper Script

애플리케이션을 배포할 때 도움이 되는 기능을 사용할 수 있다.

- cfn-init

    - 블록의 형태로 리소스 메타데이터를 호출, 해석하고 패키지를 설치하며 파일을 생성하고 서비스를 시작하는 데에          사용

- cfn-signal

    - WaitCondition과 함께 순차적으로 동작

    - cfn-signal 명령을 통해 성공/실패 신호를 전송

    - WaitCondition은 WaitConditionHandle이 호출될 때까지 스택의 완료 상태를 차단

 

CloudFormation 오류 로그

  • cloud-init,log
  • cfn-init.log
  • cfn-wire.log

 

스택 시작 추가 옵션

--on-failure : 스택 생성 실패

  • DO_NOTHING
  • ROLLBACK
  • DELETE

 

롤백 실패 시 문제 해결

  • 롤백 실패의 일반적인 원인
    • AWS CloudFormation 외부에서 스택의 리소스 변경
    • 권한 부족
    • 제한 오류
    • 리소스가 안정화되지 않음
  • continue-update-rollback : 스택이 UPDATE_ROLLBACK_FAILED 상태에 있을 때 롤백하기 위해 사용

 

템플릿 모범 사례

  • 템플릿에 자격 증명을 내장하지 않는다.
    • STS와 Role을 통해 임시 자격 증명을 부여한다.
  • AWS 고유 파라미터 유형을 사용한다.
  • 파라미터 제약 조건을 사용한다.
    • 데이터 타입, 문자열 길이 등을 지정한다.
  • AWS::CloudFormation::Init을 사용하여 EC2 인스턴스에 소프트웨어 애플리케이션을 배포한다.
  • 템플릿을 사용하기 전에 먼저 확인한다.

 

스택 관리 모범 사례

  • 코드 검토 및 버전 관리를 사용한다.
  • 스택을 업데이트하기 전에 change set을 생성한다.
  • AWS CloudTrail을 사용하여 AWS CloudFormation API 호출을 로깅한다.
  • 스택 정책을 사용한다.
    • 변경 불가, 삭제 불가 등의 제한을 건다.

AWS Service Catalog

서비스 카탈로그에 템플릿을 등록하고 그 템플릿만 사용할 수 있게 하면 다른 팀에서 리소스를 생성할 때도 리소스에 대한 옵션들이 강제되기에 변수없이 표준 규정을 준수할 수 있다.

예를 들어 보안팀에서 EBS 볼륨을 암호화해서 생성하는 옵션을 지정하여 템플릿을 생성하면 개발팀에서 EBS 볼륨을 생성할 때도 반드시 암호화 옵션과 함께 생성한다.

 

Service Catalog 구조 예시

  • AWS Service Catalog
    • 웹 서비스 포트폴리오
      • EBS 제품(=CloudFormation의 템플릿 등록)
      • EC2 제품
    • 모바일 앱 포트폴리오
    • OOO 포트폴리오

 

사용자 WorkFlow

  1. 제품 탐색
  2. 버전 선택
  3. 파라미터 채우기
  4. 필수 태그 추가
  5. 제품 시작
  6. 결과 검토

 

AWS CloudFormation 문제 해결

Amazon S3 버킷에 템플릿을 올려 놓고 재사용하려는데 오류가 발생한다.

  • 버킷이 존재하는가?
  • S3 접근 권한이 있는가?

CloudFormation 스택 리소스가 만들어지지 않는다.

  • 해당 AWS 리소스에 대한 권한이 있는가?
  • 리소스 유형에 필요한 파라미터가 있는가?
    • 코드를 작업 템플릿과 비교

Module 5 : 리소스 관리


위에선 배포에 대한 자동화를 알아봤고, 운영과 관리에 대한 프로세스 또한 간소화와 효율적인 방안이 존재한다. 스냅샷, 패치 등을 인스턴스 하나하나 접속해서 할 수 없기 때문이다.

 

AWS Systems Manager

온프레미스 서버 또한 Systems Manager Agent 설치 구성을 통해 관리할 수 있다.

  • 운영 관리
  • 애플리케이션 관리
  • 변경/패치 관리
  • 인스턴스 관리
  • 자동화 관리

 

Systems Manager 사전 조건

  • IAM 사용자에게 서비스 권한이 있음
  • Systems Manager 에이전트 설치
  • EC2 인스턴스의 인스턴스 프로파일 역할(Roles) 및 외부 시스템의 서비스 역할(Roles)
  • NACL, SG에서 HTTPS 아웃바운드 트래픽 허용
  • (Optional) VPC Endpoint

 

Systems Manager - Explorer

간단한 대시보드 형태로 현재 운영중인 리소스들을 확인할 수 있다.

  • EC2 인스턴스 메타데이터
    • 전체 인스턴스 수
    • 인스턴스별 AMI
  • 패치 규정 준수
    • 규칙 미준수 인스턴스 수
  • 기타 OpsData
    • AWS Trusted Advisor 데이터
    • AWS Compute Optimizer 데이터
      • EC2 유형 조언
      • EBS 크기/유형 조언
      • Lambda 메모리 조정
  • OpsCenter 세부 정보
    • OpsItems (관리 대상)
      • OpsItem 세부 정보
        • 보안 문제
        • 성능 문제
        • 장애
        • 상태 알림(AWS SNS)
        • 상태 변경
      • 생성, 편집
      • 유사 OpsItem 검색, 필터링, 검사
    • 리소스 설명 : 구성 데이터 확인
    • 실행서
      • 실행서를 사용하여 문제 해결
      • 문제 해결 자동화
    • 관련 리소스 세부 정보
      • CloudWatch 경보
      • AWS Config 세부 정보
      • AWS CloudTrail 로그

 

Systems Manager - AppConfig

애플리케이션 구성을 생성 및 관리하고 신속하게 배포한다.

AppConfig는 아래의 워크플로우를 따른다.

  1. 애플리케이션을 만든다.
  2. 환경을 생성한다.
    • 개발, 프로덕션 환경
  3. AWS CodePipeline 구성 프로파일을 만든다.
    • 구성 단계 설정
    • 구성 항목의 소스(하기 Parameter Store)
  4. 배포 전략을 선택한다.
    • 카나리, 롤링, AB, 블루/그린 등

 

Systems Manager - Parameter Store

  • Before
    • 코드 내 자격 증명
    • 암호화 불가
    • 버전 추적
    • 다양한 위치에서 변경된 사항
  • After
    • 코드와 데이터 분리
    • 암호화 가능
    • 버전 관리
    • 중앙 집중식

 

Systems Manager - Automation

  1. 자동화 문서 생성
  2. 자동화 문서 실행
  3. 자동화 모니터링 및 테스트

 

System Manager - State Manager

EC2 인스턴스 또는 온프레미스 서버의 일관된 구성을 유지관리한다.

  1. 자동화 문서 선택 또는 생성
  2. 인스턴스 - 문서 연결
  3. 상태의 일정 지정
  4. (선택)데이터를 S3로 출력할 수 있다.

그 밖에 Patch Manager, Maintenance Windows, Automation 등의 기능을 통해 AWS Systems Manager 안에서 운영, 애플리케이션, 변경, 인스턴스, 자동화에 대한 관리 작업을 수행할 수 있다.

 

문제 해결

인스턴스가 Session Manager에 표시되지 않는다.

  • 인스턴스에 에이전트가 설치되어 있는가?
  • 양 측 네트워크가 연결되어 있는가?
  • 사용자에게 사용 권한 또는 Role이 부여되어 있는가?

 

 


티스토리의 UX상 문제로 항목별 정리와 넘버링 등의 부분에서 멋대로 상위 항목에 탭이 들어가고 있다.

결국 YAML파일 작성하듯이 수동으로 들여쓰기로 했다.

이 밖에도 여러가지 이유로 가능한 한 빨리 다른 플랫폼으로 이전할 예정이다.

'IT > AWS 공인 교육' 카테고리의 다른 글

Systems Operations on AWS - Module 7~8  (0) 2021.12.02
Systems Operations on AWS - Module 6a~b  (0) 2021.12.01
Systems Operations on AWS - Module 1~2  (0) 2021.11.29
Architecting on AWS - 03  (0) 2021.11.13
Architecting on AWS - 04  (0) 2021.11.13

+ Recent posts