AWS는 Landing zone 구성을 위한 백서 및 Cloud Formation을 Github에 공개하고 버전관리도 수행한다 또한 AWS의 서비스 중 Landing zone 관리를 위한 서비스인 Control tower도 제공한다
2020년 7월 기준 GCP는 Landing zone 형태의 서비스 구성에 어려운점이 많아 구성하지 않는것이 좋다 (Transit GW 같은 서비스가 없어 VPC Peering 구성해야 하는게 가장 큰듯)
AWS Landing zone은 Organization을 기반으로 각자의 용도가 분명한 Account들이 협업하는 구조이다
Organization의 Service Control Policy 정책에 따라 Account들이 관리 된다 각자의 용도가 분명한 Account 1개 에는 1개의 VPC 만 구성한다
크게 분류하면(Organization Unit 으로는...) Root, Core, Service 로 나눌 수 있다 Core에는 Shared, Network, Security 등의 Landing zone 주요 서비스들이 구성된다 Service에는 실제 고객의 인프라 자원들이 생성되는 곳이다
AWS Landing Zone 솔루션은 AWS Account Vending Machine(AVM) 제품을 배포하여 새로운 계정을 프로비저닝하고 자동으로 구성합니다. AVM은AWS Single Sign-On(SSO)을 활용하여 사용자 계정 액세스를 관리합니다. 고객은 이 환경을 사용자 지정하여 Landing Zone 구성 및 업데이트 파이프라인을 통해 자체 계정 기준을 구현할 수 있습니다.
1. AWS Landing Zone 솔루션에는 4개의 계정과 AWS Service Catalog를 사용하여 배포할 수 있는 애드온 제품(예: Centralized Logging 솔루션, AWS Managed AD and Directory Connector for AWS SSO)이 포함됩니다.
*AWS Organization 계정
AWS Landing Zone이AWS Organizations계정에 배포됩니다. 이 계정은 구성을 관리하고 AWS Landing Zone 관리형 계정에 액세스하는 데 사용됩니다. AWS Organizations 계정은 멤버 계정을 생성하고 재정적으로 관리하는 기능을 제공합니다. AWS Landing Zone 구성 Amazon Simple Storage Service(Amazon S3) 버킷과 파이프라인, 계정 구성 StackSets,AWS Organizations 서비스 제어 정책(SCP), AWS Single Sign-On(SSO) 구성이 포함됩니다.
*로그 서비스 계정
공유 서비스 계정은 디렉터리 서비스와 같은 인프라 공유 서비스에 대한 참조입니다. 기본적으로 이 계정은 Account Vending Machine (AVM)으로 생성된 새로운 AWS 계정과 자동으로 피어링될 수 있는 공유된 Amazon Virtual Private Cloud(VPC)에서 AWS SSO 통합을 위한 AWS 관리형 Active Directory를 호스팅합니다.
*로그 아카이브 계정
로그 아카이브 계정에는 로그 아카이브 계정에 있는 모든 AWS CloudTrail 및 AWS Config 로그 파일의 사본을 저장하기 위한 중앙 Amazon S3 버킷이 있습니다.
*보안 계정
보안 계정은 모든 AWS Landing Zone 관리형 계정에 대한 감사자(읽기 전용) 및 관리자(전체 액세스) 교차 계정 역할을 생성합니다. 이 역할은 회사 보안 및 규정 준수 팀이 인시던트 발생 시 긴급 보안 작업을 감사하거나 수행하는 데 사용하는 것을 목적으로 합니다.
또한, 이 계정은 마스터Amazon GuardDuty계정으로 지정됩니다. 마스터 계정 사용자는 GuardDuty를 구성하고 자신의 계정 및 모든 멤버 계정에 대한 GuardDuty 결과를 확인할 수 있습니다.
2. Account Vending Machine(AVM)은 AWS Landing Zone 주요 구성 요소입니다. AVM은AWS Service Catalog제품으로 제공되는데, 고객이 계정 보안 기준으로 사전 구성된 OU(조직 단위)의 새 AWS 계정과 사전 정의된 네트워크를 생성합니다.
3. AWS 계정에 권한이 최소화된 개별 사용자 액세스를 제공하는 것은 AWS 계정 관리의 필수적이면서도 기본적인 구성 요소입니다. AWS Landing Zone 솔루션은 고객에게 사용자 및 그룹을 저장하는 2가지 옵션을 제공합니다.
4. AWS Landing Zone 솔루션은 루트 계정 로그인, 콘솔 로그인 실패, API 인증 실패, 계정 내 변경 사항(보안 그룹, 네트워크 ACL, Amazon VPC 게이트웨이, 피어링 연결, ClassicLink, Amazon EC2(Amazon Elastic Compute Cloud) 인스턴스 상태, 라지 Amazon EC2 인스턴스 상태, AWS CloudTrail, AWS Identity and Access Management(IAM) 정책, AWS Config 규칙 준수 상태)이 발생할 경우 알림을 전송하도록Amazon CloudWatch경보 및 이벤트를 구성합니다.
랜딩 영역은 보안 및 규정 준수 모범 사례를 기반으로하는 잘 설계된 다중 계정 AWS 환경입니다.AWS Control Tower는 자격 증명, 연동 액세스 및 계정 구조에 대한 모범 사례 청사진을 사용하여 새로운 랜딩 영역의 설정을 자동화합니다.랜딩 존에서 자동으로 구현되는 블루 프린트의 몇 가지 예는 다음과 같습니다.
AWS Organizations를 사용하여 다중 계정 환경 생성
AWS Single Sign-On (SSO) 기본 디렉터리를 사용하여 자격 증명 관리 제공
AWS SSO를 사용하여 계정에 대한 연동 액세스 제공
AWS CloudTrail 및 Amazon S3에 저장된 AWS Config의 로깅을 중앙 집중화합니다.
if n3 < 10 : n3 = int(str(n3) + "12") elif n3 >=10 and n3 < 100 : n3 = int(str(n3) + "1") n = [n1, n2, n3] n = sorted(n, reverse=True) sortedNum = n
return sortedNum
# 정열된 3자리 숫자를 자릿수끼리 덧셈 연산결과를 이용 새로운 숫자 만들기
# sortedNum: 정열된 숫자열, 숫자로된 문자열 목록, result: 생성된 숫자
def NewNum(sortedNum): NewNum = 0
res = [] qor = [int(str(item)[0]) for item in sortedNum] tlq = [int(str(item)[1]) for item in sortedNum] dlf = [int(str(item)[2]) for item in sortedNum] res.append(sum(qor) % 10) res.append(sum(tlq) % 10) res.append(sum(dlf) % 10)
for i in range(len(res)): NewNumber += 10**(len(res) - i - 1) * res[i]
## List 정렬 >>> a=[1,3,4,5,2] >>> a.sort() >>> a [1,2,3,4,5]
>>> a.reverse() [5,4,3,2,1]
>>> a[::-1] [5, 4, 3, 2, 1]
## List 정렬2 (2개 리스트를 한개의 순서에 맞추어 동시에 정렬) for i in range (0, len(totalID)-1) : for k in range(i+1, len(totalID)) : if int(totalPay[i]) < int(totalPay[k]) : totalPay[i], totalPay[k] = totalPay[k], totalPay[i] totalID[i], totalID[k] = totalID[k], totalID[i]
You plan to migrate an on-premises Hyper-V environment to Azure by using Azure Site Recovery. The Hyper-V environment is managed by using Microsoft System Center Virtual Machine Manager (VMM). The Hyper-V environment contains the virtual machines in the following table.
Which virtual machine can be migrated by using Azure Site Recovery?
A.DC1
B.FS1
C.CA1
D.SQL1
Correct Answer:D
Q2. HOTSPOT - You have an Azure subscription named Subscription1. You have a virtualization environment that contains the virtualization servers in the following table.
The virtual machines are configured as shown in the following table.
All the virtual machines use basic disks. VM1 is protected by using BitLocker Drive Encryption (BitLocker). You plan to use Azure Site Recovery to migrate the virtual machines to Azure. Which virtual machines can you migrate?
To answer, select the appropriate options in the answer area. - Virtual Machines that can be migrated from Server1: ( ) - Virtual Machines that can be migrated from Server2: ( )
NOTE: Each correct selection is worth one point. Hot Area:
Q3.
HOTSPOT - You have an Azure subscription named Subscription1. You have a virtualization environment that contains the virtualization server in the following table.
The virtual machines are configured as shown on the following table.
All the virtual machines use basic disks. VM1 is protected by using BitLocker Drive Encryption (BitLocker). You plan to use Azure Site Recovery to migrate the virtual machines to Azure. Which virtual machines can you migrate? To answer, select the appropriate options in the answer area. NOTE: Each correct selection is worth one point. Hot Area:
You plan to move services from your on-premises network to Azure. You identify several virtual machines that you believe can be hosted in Azure. The virtual machines are shown in the following table.
Which two virtual machines can you access by using Azure migrate? Each correct answer presents a complete solution. NOTE: Each correct selection is worth one point.
쿠버네티스의 Deployment 리소스를 이해하기 위해서는 쿠버네티스에서 Deployment 없이 어떻게 배포를 하는지에 대해서 이해를 하면 Deployment 를 이해할 수 있다.
다음과 같은 Pod와 RC가 있다고 하자
애플리케이션이 업데이트되서 새로운 버전으로 컨테이너를 굽고 이 컨테이너를 배포하는 시나리오에 대해서 알아보자. 여러가지 배포 전략이 있겠지만, 많이 사용하는 블루/그린 배포와 롤링 업데이트 방식 두가지 방법에 대해서 설명한다.
1)블루/그린 배포
블루/그린 배포 방식은 블루(예전)버전으로 서비스 하고 있던 시스템을 그린(새로운)버전을 배포한 후, 트래픽을 블루에서 그린으로 한번에 돌리는 방식이다.
여러가지 방법이 있지만 가장 손쉬운 방법으로는 새로운 RC을 만들어서 새로운 템플릿으로 Pod를 생성한 후에, Pod 생성이 끝나면, 서비스를 새로운 Pod로 옮기는 방식이다.
후에, 배포가 완료되고 문제가 없으면 예전 버전의 RC 와 Pod를 지워준다.
2)롤링 업그레이드
롤링 업그레이드 방식은 Pod를 하나씩 업그레이드 해가는 방식이다.
이렇게 배포를 하려면 먼저 새로운 RC를 만든후에, 기존 RC에서 replica 수를 하나 줄이고, 새로운 RC에는 replica 수를 하나만 준다.
라벨을 같은 이름으로 해주면 서비스는 자연히 새로운 RC에 의해 생성된 Pod를 서비스에 포함 시킨다.
다음으로 기존 RC의 replica를 하나 더 줄이고, 새로운 RC의 replica를 하나 더 늘린다.
그러면 기존 버전의 Pod가 하나더 서비스에서 빠지게 되고 새로운 버전의 Pod가 서비스에 추가된다.
마찬가지 작업을 반복하게 되면, 아래 그림과 같이 예전 버전의 Pod가 모두 빠지고 새 버전의 Pod만 서비스 되게 된다.
만약에 배포가 잘못되었을 경우에는 기존 RC의 replica 수를 원래대로 올리고, 새버전의 replicat 수를 0으로 만들어서 예전 버전의 Pod로 롤백이 가능하다.
이 과정은 kubectl rolling-update라는 명령으로 RC 단위로 컨트롤이 가능하지만, 그래도 여전히 작업이 필요하고, 배포 과정을 모니터링 해야 한다. 그리고 가장 문제는 kubectl rolling-update 명령은 클라이언트에서 실행 하는 명령으로, 명령어 실행중에 클라이언트의 연결이 끊어 지면 배포작업이 비정상적으로 끊어질 수 있는 문제가 있다.
그리고 마지막으로, 롤백과정 역시 수동 컨트롤이 필요할 수 있다.
그래서 이러한 과정을 자동화하고 추상화한 개념을 Deployment라고 보면 된다.
Deployment는 Pod 배포를 위해서 RC를 생성하고 관리하는 역할을 하며, 특히 롤백을 위한 기존 버전의 RC 관리등 여러가지 기능을 포괄적으로 포함하고 있다.
API Gateway > 규모와 상관없이 REST(상태비저장) 및 WebSocket(상태저장) API를 생성, 게시, 유지하고 모니터링 및 보안하기 위한 AWS 서비스입니다
. 상태저장(Statful) : 서버가 클라이언트와의 통신 상태(state)를 계속 추적하며 이 상태 정보를 서비스 제공에 이용 . 상태비저장(Statless) : 클라이언트로부터 새로 도착한 명령문(request)에만 의존하여 서비스를 제공
* API란 : Application Program Interface > 라이브러리에 접근하기 위한 규칙들을 정의한 것 운영체제와 응용프로그램 사이의 통신에 사용되는 언어나 메세지 형식
* REST API > HTTP 통신 프로토콜을 이용해서 요청과 응답메세지를 주고 받는 것 Resource에 대해 GET,POST뿐만 아니라 PUT,DELETE 요청이 있고, HTTP가 원래 stateless한 통신이기때문에, 헤더에 토큰을 설정해서 인증을 받음. HTTP 통신을 기반으로 하기때문에 HTTP요청을 보낼 수 있는 모든 언어 및 환경에서 가능
- POST를 통해 해당 URI를 요청하면 리소스를 생성합니다. - GET를 통해 해당 리소스를 조회합니다. - PUT를 통해 해당 리소스를 수정합니다. - DELETE를 통해 리소스를 삭제 합니다.
* URI(Uniform Resource Identifier) : 인터넷에 있는 자원을 나타내는 유일한 주소
* REST : Representational State Transfer > 웹의 장점을 최대한 활용할 수 있는 아키텍쳐
AWS 백업/복구 아키텍쳐 > Snapshot 활용한 백업 및 복구 >Snapshot 백업본을 S3에 저장 시 3개의 AZ에 저장, 원격지 소산 구현
AWS DBMS 전환 지원 서비스 - AWS SCT(Schema Conversion Tool) . 소스 데이터베이스의 스키마를 전환 대상 Amazon RDS instance와 호환되는 형식으로 자동 변환 가능 - AWS DMS(Database Migration Service) . 동종 DBMS간 Migration, 이기종 DBMS간 Migration 지원
DNS 서버 - Name Server(Router53)을 미사용 시 LG CNS 운영팀의 Name Server 와 연동이 될 수 있도록 Endpoint를 CNAME 등록한다 - Public IP인 경우, A Record 등록을 통해서 한다 - LG*Net 내부 DNS를 Master DNS로 설정
* CNAME (Canonical Name): 하나의 도메인에 다른 이름을 부여하는 방식. 도메인 이름의 또 다른 이름.alias ?
* A Record: Domain name에 하나의 IP 가 있음을 의미. 하나의 도메인(서비나 루트 포함)에 해당하는 IP주소의 값을 가지고 있음.
NAME TYPE VALUE
-------------------------------------------------- bar.example.com CNAME foo.example.com foo.example.com A 192.0.2.23
* 인트라넷 또는 VPC 내부에서 Web 서비스 접속 시 내부 Web ELB 를 경유 하도록 DNS 설정 - LG*Net 외부 DNS -> 외부 Web ELB 도메인 네임 CNAME 등록 - LG*Net 내부 DNS -> 내부 Web ELB 도메인 네임 CNAME 등록
EC2 인스턴스의 EBS Volume에 대한 Snapshot 백업 - Volume 수준의 Snapshot 생성 - 첫번째 Snapshot은 전체볼륨에 대한 복사본, 이후 Snapshot은 마지막 Snapshot이후 변경된 디바이스의 블록만 저장하는 증분 백업 - S3에 백업 저장 시 3개의 AZ에 저장(소산)
EC2 인스턴스의 EBS Volume에 대한 Snapshot 복구 절차1:백업받은 Snapshot에서 Volume을 생성 절차2: Instance에서 기존 Volume의 umount 절차3: Instance에서 기존 Volume의 할당된 내역 제거 절차4: 신규 생성된 Volume을 Instance에 할당 절차5: 신규 Volume을 Instance에서 mount
EFS는 AZ 바깥에 위치함
NAT G/W : AZ 당 1개씩 구성 : 윈도우 업데이트 와 S3등 AWS Public 서비스 사용 목적
On-Premise와 AWS간 migration 전환 - Z-Converter나 CloudEndure 사용 1> Migration Manager 서버 URL 접속 (On-Premise 내부망에 구축) 2> On-Premise 운영서버에 Agent 설치 3> Cloud 데이터센터에 인스턴스 생성 후 Agent 설ㅊ 4> Migration 마법사를 통한 Migration 수행 5> Cloud 데이터센터에서 On-Premise 내부망으로 migration 가능(탈 Cloud 전략)
PROD와 DEV/QA분리는 SandBox 이용
RDS의 제약사항 확인 필요 . 파라미터 그룹을 통해서만 파라미터 조정이 가능. . On-Premise환경과는 달리 변경할 수 없는 파라미터가 존재함.
Security
* Security Group 제약사항: SG당 Max 허용 Rule 60개 , stateful > Allow만 설정가능, Statful이므로, outbound rule과 상관없이 inbound rule에 따름.
* ACL당 규칙목록은 inbound/outbound가 각각 최대 20개까지 지정 가능, stateless > 상태 비저장이라 inbound rule과 outbound rule이 각각 적용됨 > Allow 와 deny설정 가능, default는 모두 deny
* VPC당 최대 ACL갯수는 200개
* Network ACL의 특징
VPC의 Network ACL은 Subnet 단위로 적용
직접 생성한 Network ACL 정책은 All Deny 상태로 사용자가 정책을 추가하지 않고 해당 Network ACL로 교체하면 Subnet의 모든 통신이 두절됨
동일한 Network ACL을 여러 Subnet에 적용하는 것은 가능하나 한번에 한개의 Network ACL만 Subnet에 연결할 수 있음
Network ACL 규칙 목록은 번호가 낮은 것부터 우선으로 적용
Network ACL은 Stateless
서버 접근제어: Bastion Host 사용
UTM - Host based UTM (Agent 방식) - 관문형 UTM > 인스턴스의 N/W bandwidth 제한이 있음: 서비스의 부하집중으로 인한 N/W 성능 저하
VPC Endpoint: S3, dynamoDB,kinesiss,ecs 등 public service 연동시 권장
VPC 개발 / QA 환경
- 운영환경과 개발/QA 환경은 VPC를 분리하여 구성 - 운영환경과 동일 VPC 내에 Subnet분리하여 개발/QA 환경을 구성 시 운영팀과 협의
VPC Flow logs - Flow log사용을 위해 아래 두가지 설정 > VPC Flow log를 위한 CloudWatch의 log group 생성 > 생성한 log group에 log stream을 사용할 수 있는 IAM role 권한 지정
표준 아키텍처상의 VPC flow log - Flow logs가 VPC내의 cloudWatch에 저장 => logging VPC의 CloudWatch에 다시 저장(중복저장) : 감사에 활용
VPC 간 통신은 인트라넷을 경유하도록 구성 - VPC Peering : Routing 복잡성을 고려하여 5개 미만 일 경우 사용 - Transit gateway 사용을 권장 (DX연결 필요 시Direct Connect Gateway을 추가구성) ※ 현) Transit gateway가 Direct Connect Gateway기능 미 지원
VPN (Site to Site: DX 미구성) - Customer Gateway 구성(VPN 연동할 장비 IP) - Virtual Private Gateway 구성 - VPN 연결 생성
WAF - 운영팀에 관리 및 관제가 가능한 한 제품으로 선정하여 구성
WAS session Store Subnet (WAS Auto Scaling) > 일반적인 cache와 다르게 session store를 통해서 읽고 쓰는 형태 세션이 죽어도 세션 데이터가 session store에 남아있음 > Cache의 경우 세션이 끝날경우 session 정보도 끝남
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)
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에서는 백업을 스냅샷으로 나타냄.
- 프로비저닝된 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를 사용하지 못함.
드리프트 감지 지원 : 기존에 만든 템플릿과 수작업으로 변경한 구성정보를 비교하여 다른점을 바로 감지함.
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일만 보관됨.