AWS 아키텍쳐 교육 정리한 내용입니다.

교육을 듣지 않고, 아래 내용 만으로 이해하기 어려운 부분이 있을 수 있습니다.

교육 듣고 나서 정리하는 차원에서 편하게 읽으시면 됩니다.

잘못된 내용은 과감히 거르시고 읽으시면 됩니다.

 

 

            >>  아  래 <<


--------------------------------------------------------------------

AWS architecure center  --- 아키텍쳐 참고 가능 (https://aws.amazon.com/ko/architecture/)
aws quick starts -- 자동화된 표준 배포 (https://aws.amazon.com/ko/quickstart)
aws simple icon  - 아키텍처 다이어그램 구축을 위해 설정된 공식 AWS 아이콘 (https://aws.amazon.com/ko/architecture/icons/)

--------------------------------------------------------------------

firefox - Console record for AWS (add-on)
 - console 화면 녹화하여 그 결과를 JSON이나 YMAL 형태로 만들어 줌.

--------------------------------------------------------------------

 


WAF- 백서로 제공 됨. ( AWS Well-Architected Framework 한국어 기술 백서(PDF 버전)를 공개합니다.)
  - 한글 버전은 영문버전 보다 1~1.5년 늦음.


 AWS Well-Architected Tool
모든 AWS 고객이 Well-Architected 검토를 이용할 수 있도록 하기 위해 AWS Well-Architected Tool을 새롭게 선보입니다. 이 도구는 아키텍트와 담당 관리자가 AWS 솔루션스 아키텍트의 도움 없이도 언제든지 AWS 워크로드를 검토할 수 있도록 설계된 셀프 서비스 도구입니다.


보안

 - IAM : 무료 서비스
   . 자격증명연동 가능 : AD, IdP (자격 증명 공급자) 등...
   . CloudTrail : 추적 가능성 활성화.. S3에 저장 가능.(버킷을 통해 접근)
       S3에 object lock 기능제공(worm 기능 : write once read many)

 

안정성
 - auto-scaling

 

비용최적화
  - aws calculator
  - aws cost explorer
  - aws trusted advisor (standard, advance 두종류)


  EBS 비용 청구 개념 : 초기 할당 공간에 대한 비용 청구
  s3나 다른 스토리지는 사용하는 만큼 비용청구함.

 

운영우수성
  - cloud watch

성능효율성


--------------------------------------

AWS 글로벌 인프라 3가지 기억해야 함.

 1. 리전  : 인프라 위치를 지리적 대표 도시 이름으로 논리적으로 표현한 의미임. ex)서울리전, 도쿄리전

 2. 가용영역 : 하나 이상의 데이터 센터로 구성, 별도의 지역에 별도의 시설별로 분리.
 
 3. 엣지로케이션 : aws 4가지 기능제공
        Route53 (DNS), Cloud Front (CDN), AWS Shield,  AWS Web Application Firewall(WAF)


spot instance 요금제 : 시장가와 입찰가를 고려하여 요금 부여
    가용영역 단위로 시장가가 결정됨.
 단점 : 시장가가 입찰가보다 높아지면 instance를 회수함.

 auto-scaling 시 on demand , spot 인스턴스 사용에 대한 우선순위 정할 수 있음.

 

.아래 아키텍처 다이어그램의 모든 구성요소를 이해할 수 있어야 함.

 

 

---------------------------------------------------

모듈 2.


S3 : 오브젝트 스토리지
내구성 : 견고성, 보안 99.999999999% 내구성 (파일 1만개를 천만년동안 보관할때, 1개 깨질 확률)
 S3에 파일 업로드시 내부적으로 3복제 함.
 이벤트 트리거 기능.
 - 정적 웹 호스팅 가능
 - 기본 버킷은 private이지만, public, 액세스 정책 가능함.
 - 권한은 Json 파일 형태로 제어 가능

  - 버전관리 기능은 디폴트는 비활성화 상태임.
  - CORS(Cross-Origin Resource Sharing) 가능

 

 S3에 인터넷을 통해 대량의 데이터를 보내야 하는데, 방법은?
   1. 멀티파트 업로드 (병렬방식) 를 통해 해결..
   2. S3 transfer acceleration (엣지 로케이션 이용)
        ; 엣지 로케이션 까지는 인터넷, 이 이후는 AWS 네트워크를 이용
   3. AWS Snowball, Snowmobile 이용

 

비용추가 방식
  . 저장공간 + 인터넷전송 (put, copy, post, list, get)
   but S3로 수신하는것, 동일 리전 내 EC2 전송, Cloud Front전송 제외

 

S3 Glacier : 온프리미스 환경의 tape 으로 생각하면 됨.
  데이터 조회 요청시  아카이브된 데이터를 S3에 풀어서 제공함.

S3 종류
 . S3 Standard  : 범용 (여러 가용영역에 여러 복제본으로 보관)
 . S3 Standard IA  : 자주는 아니지만 빠른 액세스
 . S3 One zone IA : 자주 액세스하지 않는 재생성 가능한 데이터 (하나의 가용영역에 여러 복제본 으로 보관)
 . S3 Glacier/Deep : 사용 가능한 가장 저렴한 스토리지 티어에 데이터 보관

 

리전선택
  - 데이터 주권 및 규정 준수
  - 사용자와 데이터간 근접성  
  - 서비스 및 기능 가용성
  - 비용 효율성

 


사용자 데이터
 ; AMI에 포함되지 않은 사용자가 필요한 쉘 등 스크립트등..
 ; 최초 구성시 1회 수행됨.

메타 데이터
 ; 인스턴스 id, mac, ip등..

인스턴스 스토리지 : 호스트에 직접 연결된 스토리지, 휘발성 스토리지.
EC2 인스턴스를 stop/start시 host가 변경됨.
EBS 내구성은 99.999% 임. => 백업을 받아야 하는데, 스냅샷으로 수행되며, S3에 저장됨.
aws에서는 백업을 스냅샷으로 나타냄.

 

SSD 기반
 - 범용 SSD
   1GB당 3 IOPS 제공함.
      if) app가 150 IOPS가 필요하면 최소함 50GB를 할당 받아야 함.(최대 3000 IOPS까지 지원됨)

 - 프로비저닝된 IOPS SSD
   필요한 IOPS를 직접수치로 지정함.
    ex) 3만 IOPS로 지정을 해서 사용하려면 EC2 인스턴스도 높은 걸로 선택해야 함.
    최대 64,000 IOPS 지원가능함.

 

HDD 기반
   - 처리량 최적화 HDD
   - 콜드 HDD

EBS 최적화 인스턴스


크레딧 : 항상 컴퓨팅 파워을 전부 사용하지 않기 때문에
적게 사용할때 크레딧을 모아두고, 컴퓨팅 파워가 부족할때 모아진
크레딧을 사용하게됨(버스트 기능)

패밀리에 따라 인스턴스 스토리지 가능한 것들이 있음.
T패밀리 : 크레딧 가능
C패밀리 : 크레딧 불가

H패밀리 인스턴스 스토리지 사용가능


온디맨드 인스턴스 : 리눅스와 우분투인 경우만 초단위 요금제, 나머지는 시간단위 요금제임
예약 인스턴스 : 3가지 선불제 요금제, 온디맨드 대비 최대 70% 저렴. 환불안됨. but 마켓플레이스에 판매 가능함.
  if) 3년 약정으로 t2사용시 1년 후 t3가 나왔을경우 t3로 바꿀수 있다.
스팟 인스턴스 : 종료 2분전 공지. 시장가+입찰가로 가격책정됨. 시장가는 가용영역으로 결정됨. 스팟블록 가능 (1~6시간 가능)


전용 호스트 : 고객에게 하드웨어 가시성 제공
  특정 벤터 소프트웨어 라이센스 사용시 고려시 사용

 

전용 인스턴스 : stop/start시 호스트는 변경됨.
   stop -> 보류중 -> start 상태 변경시 보류중 상태에서 내부적으로 호스트 검색함.

사용자의 인스턴스 추적

  - 대소문자 구분함.

 


모듈 4. 데이터베이스 계층 추가

관계형 데이터베이스
 - RDS
 - Redshift (DW, 병렬처리)

비관계형 데이터베이스
 - DynamoDB (키:값,  데이터 크기에 관계없이 10ms 내 응답시간 보장, 사용자는 테이블만 정의하면 나머지는 모두 AWS에서 수행함. ex EC2, 스토리지등.. 모두 aws가 관리)
 - ElastiCache
 - Neptune (그래프 형식 DB)


Aurora - 16개 노드가 클러스터로 구성되어 제공됨. (1개의 마스터, 15개의 슬레이브로 구성)

DynamoDB 글로벌 테이블 :

DynamoDB 일관성 옵션
 - 최종 일관성
 - 강력한 일관성


ASW DMS (Database Migration Service)
 ; 온프레미스 - 클라우드간 데이터 이관 지원
 데이터베이스가 너무 크거나, 연결이 느리거나, 개인정보 보호 및 보안 문제가 있을때는
AWS snowball edga 사용하여 이관


AWS SCT (Schema Conversion Tool)
 ; 기존 데이터 베이스 스키마를 이관

 


모듈 5: AWS에서의 네트워킹 1부


VPC는 AWS리전중 1개 리전에 배포

다중 VPC 및 복수 계정

 

- 다중 VPC 패턴
계정 한개에 여러 VPC를 생성하여 관리, 기본 5개 생성가능함.(soft limit)
만일 더 필요할경우 AWS에 요청하면 더 증설 가능함.

 

- 복수 계정 패턴
생성한 인프라를 다른 조직으로 이관 가능함.
VPC뿐만 아니라 다른 자원에 대해서도 limit이 존재하기 때문에 설계시 고려해야 함.

CIDR
10.0.0.0/16 = 10.0.0.0 에서 10.0.255.255 까지의모든 IP사용

AWS는 각 서브넷에서 5개의 IP주소를 예약하여 사용자가 사용불가함.
만일 서브넷을 10개로 만들면 50개의 IP를 사용하지 못함.


NAT 게이트웨이
 퍼블릭 아웃바운드는 가능하나 인바운드 불가함.
 ex) 패치가 필요할경우 사용


웹티어인스턴스를 퍼블릭 서브넷에 넣을수 있지만
AWS는퍼블릭서브넷에 배치된로드밸런서 뒷쪽의 프라이빗서브넷 내부에 이 인스턴스를배치할것을 권장함.
일부환경에서는 웹애플리케이션 인스턴스를 탄력적 IP에직접 연결해야하며(탄력적 IP를로드밸런서에연결할수있더라도), 그런경우웹 애플리케이션인스턴스는퍼블릭서브넷에있어야합니다. 로드밸런서는이후 모듈에서자세히다루기로하겠습니다. (AWS)

웹 애플리케이션을 프라이빗에 둘 경우 해당 정보가 사용자에게 공유 되지 않아
보안에 좋음.


서브넷 권장 사항

큰 크기로 서브넷 설정
차후 ip 부족시 VPC 를 재구성 해야함.

 

탄력적 IP 주소 (EIP)

EIP 는 고정해서 사용가능.
인스턴스간 이동 가능


보안그룹(Security-Group) 은 기본적으로 모든 인바인드 트래픽 차단 , 모든 아웃바운드 트래픽 허용 상태임.

네트워크 ACL (NACL)
 ; 보안그룹 보다 더 큰 범위의 보안임. (설정시 관리적 측면이 늘어남)
 ; 서브넷 경계의 방화벽
 ; 기본적으로 모든 인바인드/아웃바운드 허용되어 있음

다중보호 계층이 있는 인프라구조(p. 237)

 

 

가상 프라이빗 게이트웨이 (VGW)
 ; 온프레미스와 AWS 를 네트워크 연결 (VPN)

 

AWS Direct Connect(DX)

 

하이브리드 클라우드 아키텍쳐
 ; 데이터 보안등..컴플라이언스 충족을 위해.. 사용 고려.
 ; 빅뱅방식으로 클라우드 전환이 어려울 경우 사용 고려

비용절약을 위해, 주 회선은 DX로, 보조회선은 VGW로 구성하는것도 고려

 

VPC 피어링
  ; 1-1로만 구성 가능함.
  ; 타 계정, 다른 리전의 VPC와 피어링 가능
  ; IP 중복될 수 없음.

AWS 서비스는 기본적으로 확장성, 가용성, 내결합성 지원함.

 

VPC연결 - Transit Gateway
 ; 단일 게이트웨이로 최대 5000개의 VPC와 온프레미스 환경에 연결
   네트워크에 흐르는 모든 트래픽의 허브 역할 담당


VPC 엔드포인트
 ; AWS를 벗어나지 않고, EC2인스턴스를 VPC 외부 서비스와 프라이빗하게 연결함.
 ; 동일한 리전에 있어야 함.

 

VPC 피어링 : VPC 간의 연결


VPC 엔드포인트 : VPC와 AWS 서비스간 연결

 

VPC 엔드포인트
  - 게이트웨이 엔드포인트 - 라우팅 경로 거처서 접근
  - 인터페이스 엔드포인트 - IP로 접근

 

EBL
 . ALB
 . NLB

가용영역당 50:50으로 분배함.
25:25 25:25 (가용영역 두군대에 2대씩 구성시 부하분산)
25:25 50    (가용영역 두군대중 1군대 서버 1대만 서비스 가능시 부하분산)

교착영역 로드 밸런스 기능을 활성화 하면 가용영역이 아니라,
사용가능한 인스턴스로 세션을 보냄
33:33:33

Connection Draining 기능 :  고객이등록해지한백엔드 인스턴스가등록해지되기전에진행중이던요청을먼저완료 (AWS)
Secutiry Group 도 추가적으로 구성가능함.

 

 

Route 53 라우팅 옵션
- 간단한 라운드 로빈
- 가중치 기반 라운드 로빈
- 지연 시간 기반 라우팅
- 상태확인 및 DNS 장애 조치
- 지리 위치 라우팅
- 트래픽 바이어스를 통한 지리근접 라우팅
- 다중 값 응답

 

 

모듈 7. IAM

AWS 계정 루트 사용자
  - 리눅스의 root, 윈도우의 administartor 와 같음

IAM 사용자는 별도의 AWS 계정이 아니라 계정 내 사용자입니다.
기본적으로 주어진 권한은 없음.

리소스 기반  - AWS 서비스에 부여, 항상 인라인 정책임 (필요한 리소스를 하나하나 입력 해야 한다는 뜻)
자격 증명 기반 - IAM 보안 주체


IAM 정책시 NotResource는 여기에 정의된 항목만 제외한다는 뜻

IAM 역할
 - 권한을 IAM 사용자 또는 그룹에 연결하지 않음.
 - 권한을 역할에 연결하고 역할을 사용자 또는 서비스에 위임함.


Amazon Cognito

여러 AWS 계정을 사용하기 위한 전략

AWS Organizations
 ; 통합결제 가능

 

 

모듈 8. 탄력성, 고가용성 및 모니터링

Cost Explorer - 13개월 데이터를 참고하여 지출패턴 확인 (가계부같은 역할)

CloudWatch
 ; 리소스 지표 수집, 경보 생성, 트리거 가능


CloudTrail : 계정에서 이루어지는 모든 API 호출을 기록하고 지정된 S3버킷에 로그를 저장
   S3에 object lock, glacier에는 vault lock 설정하여 위변조 방지


VPC flow log : 트래픽 흐름 세부 정보 캡쳐


Auto Scaling
 - 예약 : 예측 가능한 워크로드에 적합 (야간 및 개발 테스트 인스턴스 종료)
 - 동적 : ex) cpu 사용율 기반으로 조정
 - 예측 : 기계학습 기반 조정

Auto scaling 구매 옵션 , 아래 옵셧을 섞어서 구성할 수 있음.
 - 온디맨드
 - 예약
 - 스팟


auto scaling 최소 용량 기준은 ? 가용영역을 기준으로 설정
최대 용량은? 비용기준으로..


cpu 사용율이 50% 넘으면 인스턴스 1개 추가
지연시간이 ? 이상이면 인스턴스 2개 추가
이럴경우 동시 발생시 인스턴스 2개 이벤트 부터 수행됨.

if cpu 50% 1개 추가, 45% 1개 제외 이렇게 설정했을 경우
추가는 빠르게 지원되며, 제거는 천천히 됨.
핑퐁치는걸 방지하기 위해.

수명주기후크
정책이 발동되어도 세션정보/상태정보를 다른 DB나 저장공간에 옮긴후
인스턴스가 삭제 되도록 하는것. 최대 2시간 유보함.


SQLServer, Oracle은 Read replica 를 지원하지 않음.

Amazon RDS 확장시 : 가동중지 없이 스토리지를 늘릴 수 있지만, 인스턴스 유형을 변화하려면 가동 중지 시간이 필요함.

 


모듈 9. 자동화

 AWS ColudFormation : AWS 리소스를 자동화된 방식으로 생성하고 구축 (JSON, YAML사용)

    드리프트 감지 지원 : 기존에 만든 템플릿과 수작업으로 변경한 구성정보를 비교하여 다른점을 바로 감지함.


AWS Quick Start : AWS 클라우드에서 모범 표준 배포

AWS Systems Manager : 자동화된 구성 및 대규모 시스템의 지속적 관리가 가능한 기능의 집합
  ; AWS에서 뿐만 아니라 온프레미스 환경에서도 사용가능
   AMI 에는 agent가 설치되어 별도 구성이 필요없지만, 온프레미스 환경에서 사용할려면 agent 구성을해야함.
  - 명령실행, 유지관리 기간, 패치관리, 상태 관리자

Cloud Trail 서비스와 상태관리자와 연계하여 분석 진행가능함.


AWS OpsWorks
 

CloudFormation 관 OpsWorks 와 다른점은 CloudFormation 은 AWS 서비스만 자동 구성 관리 가능하지만, OpsWorks는 더 세부적인 것까지 설정가능함. 더 큰범위임.
두 서비스 같이 합쳐서 사용하여 구성가능함.

예) AWS CloudFormation 을 사용하여 인프라 (VPC, IAM 역할)를 구축하고 AWS OpsWorks를 사용하여 애플리케이션 게층을 배포함.


AWS Elastic Beanstalk
 - 인프라를 프로비저닝 및 운영하고 사용자를 위해 애플리케이션 스택을 관리

 

 

모듈 10. 캐싱

무엇을 캐싱해야 하나? 자주 변경되지 않는 정적인 데이터 우선.
                            자주 액세스 하는 데이터

엣지캐싱 : CDN


Amazon Virtual Private Colud에서 Bring Your Own IP 공식 출시 발표


Amazon CloudFront
  - Amazon의 글로벌 CDN
  - 다중 계층 캐시와 광범위한 유연성으로 모든 전송 사례에 최적화

콘텐츠 만료 방법
  - Time To Live (TTL)
   . 기간고정, 고객이 설정
 - 객체이름 변경
 - 객체 무효화

 

 

모듈 11. 결합 해제된 아키텍쳐 구축

밀결합  <--> 소결합

Amazon Simple Queue Service(Amazon SQS) - 완전 관리형 서비스
 대기열 유형
 . 표준 대기열
 . FIFO 대기열

Amazon Simple Notification Service(SNS)
 ; 클라우드에서 손쉽게 알림기능을 설정, 작동 및 전송할 수 있는 웹 서비스임.


                             SNS         vs         SQS
- 메시지 지속성        아니요                   예
- 전송 메커니즘        푸시(수동적)          폴링(능동적)
- 생산자/소비자        게시/구독             송신/수신
- 배포 모델              일대다                 일대일

 

 

모듈 12. 마이크로 서비스 및 서비리스 아키텍쳐

 마이크로 서비스 (MSA)
 ; 잘 정의된 API를 통해 통신하는 독립서비스로 구성된 애플리케이션

컨테이너 서비스

Amazon Elastic Container(ECS)
 - EC2 사용하기
 - AWS Fargate - 완전 관리형 컨테이너 서비스 사용하기


서버리스 환경 구현
 ; 서버를 관리하지 않고, 앱과 서비스를 구축하고 실행

. AWS Lambda (최대 15분 수행가능)
 완전 관리형 컴퓨팅 서비스
상태 비저장 코드실행

Lambda가 처리하는 작업

Lambda가 할 수 있는 작업


Amazon API Gateway
 ; 애플리케이션의 "현관" 역할을 하는 API를 생성할 수 있음.
 ; 캐싱역할도 수행함.


AWS Step Functions
 ; 시각적 워크플로를 사용한 마이크로서비스 조정


Lambda 에서 코드 수행을 더 빠르게 하기 위해 더 빠른 서버 선택 가능함.
 - cpu가 아니라 메모리만으로 조정 가능함.(default 128MB, 최대 3GB 까지 가능함)


if. Lambda 를 15분 4회 연속사용하여 1시간 사용비용과 EC2 1시간 사용비용을 단순히 비교하면
Lambda가 더 비싸다.

 

 

모듈 13. RTO/RPO

S3 -  교차 리전 복제

Amazon RDS
Amazon DynamoDB
자동백업 수행해 주지만, 최대 35일만 보관됨.

자동백업이 회사정책을 만족하지 못하면 수동 백업을 설정해야 함.

AWS Storage Gateway
 ; AWS Storage Gateway는온프레미스소프트웨어어플라이언스를클라우드기반 스토리지와연결하여온프레미스 IT 환경과AWS 스토리지인프라간에 원활하면서도매우안전한통합을제공합니다. 이서비스를사용하면확장 가능하고비용효율적인스토리지인AWS 클라우드에데이터를안전하게저장할 수있습니다. Storage Gateway는기존애플리케이션과연동하는업계표준 스토리지프로토콜을지원하는동시에Amazon S3 또는Amazon Glacier에서 암호화된모든데이터를안전하게저장합니다.
AWS Storage Gateway를사용하면AWS 관리서비스를로컬로확장할수있습니다. 이서비스는Amazon CloudWatch, AWS CloudTrail, AWS KMS, AWS IAM 등과도 통합됩니다.
AWS Storage Gateway는파일, 볼륨및테이프라는 3가지스토리지인터페이스를 지원합니다. 각게이트웨이에서는 1가지유형의인터페이스를제공할수 있습니다.
파일게이트웨이를사용하면NFS 및SMB 파일프로토콜을사용하여Amazon S3에서객체를저장및검색할수있습니다. 파일게이트웨이를통해작성된 객체는 S3에서직접액세스할수있습니다.
 (AWS)
 


AWS 기반 재해복구 사례 
 - 백업/복원
 - 파일럿 라이트
 - 완전 동작 저용량 스탠바이
 - 다중 사이트 액티브-액티브

+ Recent posts