Task를 flow에 따라 수행하도록 하는 부분은 같은데, 세부적인 내용을 살펴보면 약간 다른 부분이 있습니다.
완전관리형이냐 아니냐의 차이와 serverless환경에서 수행되느냐 , 모든 리전에서 서비스 하느냐
정도의 차이가 있는 것 같습니다.
SWF (Simple WorkFlow) - 2012년 발표 - 모든 리전에서 서비스 제공 - Task 통합 관리할 때 세분화된 컨트롤 가능 - workflow를 배포 및 시작할 수 있는 host(EC2와 같은)가 필요함 - host의 위치는 상관없음(인터넷을 통해 통신 가능) - 비관리형 서비스 - 사용자가 다루어야할 activity가 많은 대신 복잡해 질 수 있음(자유도 높음) - 비교적 긴 사용시간이 필요한 경우 사용
Step Functions - 2016년 발표 - 특정 리전에서만 서비스 제공 - 완전 관리형 서비스 - SWF에 비해 Task 통합관리시에 세분화된 컨트롤이 약함 - AWS Lamda functions을 이용해 배포되므로, 별도의 host 불필요 - 완전 관리형 서비스의 특성으로 인해 사용자 제어 측면에서는 어느정도 유연성이 떨어짐. - 비교적 짧은 사용시간이 필요할 경우 사용
VPC간 연결 방법으로 가장 쉽게 생각할 수 있는 방법에는 VPC Peering 이 있습니다.
교육후기에 공유했듯이 VPC Peering을 할 경우 VPC의 IP대역대가 겹치면 안되고요, Internet Gateway는 필요하지 않습니다.
Public N/W을 타지 않기때문에 인터넷망에서 발생할 수 있는 보안 이슈 및 DDOS로 인한 영향을 받지 않습니다.
다만, 아래와 같이 여러 VPC간 VPC peering을 사용할 경우 네트워크가 복잡해 질 수 있습니다.
이 경우 사용할 수 있는 것이 AWS Transit Gateway입니다.
아래와 같이 Transit Gateway를 사용하여 네트워킹 모델을 단순화 할 수 있습니다.
Transit Gateway는 다른 VPC들의 Hub가 되어 VPC간 통신 연계를 가능하게 해줍니다. Resource Manager를 통해서 Transit Gateway를 타 계정에 공유해서 타 계정의 VPC와 연동도 가능합니다. On-Premise에서는 Transit Gateway로의 접근은 VPN방식으로만 가능하며, 일부 리전에서만 Direcet connet를 지원한다고 하네요. (매우 중요)
WAF- 백서로 제공 됨. ( AWS Well-Architected Framework 한국어 기술 백서(PDF 버전)를 공개합니다.) - 한글 버전은 영문버전 보다 1~1.5년 늦음.
AWS Well-Architected Tool(https://aws.amazon.com/ko/well-architected-tool/) 모든 AWS 고객이 Well-Architected 검토를 이용할 수 있도록 하기 위해 AWS Well-Architected Tool을 새롭게 선보입니다. 이 도구는 아키텍트와 담당 관리자가 AWS 솔루션스 아키텍트의 도움 없이도 언제든지 AWS 워크로드를 검토할 수 있도록 설계된 셀프 서비스 도구입니다.
아키텍쳐에서 네트워킹이 가장중요함
VPC끼리 연결하려면 VPC peering 해야 서로 통신 가능함.(VPC간 IP대역이 중복되면 안됨, IGW는 필요없음) -Public NW을 이용않음으로 보안이슈 및 DDoS 영향이 없음, 다만, NW이 복잡해짐으로 Transit G/W로 단순화 가능 *Transit gateway : 다른 VPC의 허브역할 수행(VPC연결을 많이 할 경우에 사용), Resource Manager를 통해서 Transit G/W를 타 계정에 공유해서 타계정의 VPC와 연동도 가능함. →Transit G/W로 접근은 on-premise는 VPN방식만 가능, 일부 리전에서만 Direct Connect지원 됨.
EIP : 고정 public IP
Transit gateway : 허브개념 (최근에 나왔으며 문의가 많음) - 연결을 많이 할 경우에 사용
cloudWatch: 모니터링 서비스
Cloudtrail- 호출되는 모든 로그를 기록하는 서비스
Elastic Beanstalk - 소스코드로 만드는 게 아니고 클릭 몇번으로 웹서버 등 구축 가능 > cloudFormaion 등도 생성(소스코드도...)
cloudFormaion : 소스코드로 인프라를 만들어 줌
[컨테이너서비스] 1. ECS (ALB로구성) - 컨테이너 Orchestration (EC2에 컨테이터를 만드는 대신 fargate로 생성) AWS의 내부 리소스와 밀접하게 연결하여 사용하고 싶다면 선택 *fargate - 서버 또는 클러스터를 관리할 필요 없이 컨테이너 서비스를 가능하게 해주는 ECS를 위한 컴퓨팅엔진 (리소스 제어영역을 AWS에 넘겨서 ECS를 서버리스 환경같이 사용하게 함)
2. EKS (ELB외 내부에 Proxy 를 두어 Pods로 부하분산구성) - 컨테이너 Orchestration을 쿠버네티스 기반 외부 요소들 (Monitoring Tools 및 Hybrid Cloud 등등)과 연결하여 사용하고 싶다면 선택
step function - 순서도 만들어주는 서비스, lambda 로 설정시 lambda끼리 서로 동작하는게 아니라 step function에서 제어?
AWS란? - 프로그래밍 가능한 리소스, 동적 기능, 종량 과금제
> 장점 . 자본 비용을 가변 비용으로 대체 . 규모의 경제로 얻게 되는 이점 . 용량 추정 불필요 . 속도 및 민첩성 개선 . 중요한 문제에 집중 . 몇 분 만에 전 세계에 배포
AWS well architected 프레임워크(AWS Well-Architected Framework) > 다섯가지 핵심 요소 : 보안, 안정성, 비용최적화,성능 효율성, 운영 우수성 1)보안 : IAM으로 자격증명 연동가능(AD, LDAP,등) - Cloud Trail로 추적 기능 활성화(S3에 data저장)
AWS 리전 표 > 어떤 리전에서는 제공하는 서비스가 다른 리전에서는 동일 서비스를 제공하지 않을 수 있음.
인프라에 대한 용어 (4가지) -AWS 글로벌 인프라 3가지 기억해야 함.
> AZ(가용영역) - 사용자 선택, 1. 리전 - 인프라 위치를 지리적 대표 도시 이름으로 논리적으로 표현한 의미임. ex)서울리전, 도쿄리전, 2개이상의 AZ (총 21개) 2. 엣지 로케이션 - 리전하고 별도의 시설 > 리저널 엣지 캐시 > aws 4가지 기능제공 Route53 (DNS), Cloud Front (CDN), AWS Shield, AWS Web Application Firewall(WAF) =================================================================================
EC2 요금 옵션 > 온디맨드 인스턴스 : 사용한 만큼 > 예약 인스턴스 : 1~3년 미리 예약 (앞보다 70% 저렴) > 스팟 블록 : 온디맨드보다 90% 저렴 > 전용 옵션 - 전용 인스턴스 : 처음 선점한 사용자가 호스트 사용 - 전용 호스트 : 호스트가 지정, 호스트 아이디 제공
사용자의 인스턴스 추적 : 태그 활용 > 관리,검색, 필터링 가능 > 비용 분리 등 관리 용이함 > 태그 기준으로 패치 적용도 가능함. > 운영자에게 꼭 필요함. 정책 만드는게 좋음. 태크 표준 만드는 게 좋음.
amazon RDS 마스터 > EC2 인스턴스와 연결 > AZ가 다른 EC2와 연결 가능함.
aurora - serverless 기능 추가 > 쿼리시에만 비용과금
dynamoDB - 완전 관리형 비관계형 데이터베이스 이벤트 중심 프로그래밍(서버리스) > lamda 수행 최상의 수평 확장 기능
- 글로벌 테이블 : 리전에 테이블 만들면, 다른 리전에 업데이트(복제) 됨 > 최근에 aurora도지원
-세션 정보는 dynamoDB 에 저장.(매우 중요, 고속 저장) - 임시 데이터
기본 3개 복제됨(비동기 방식)
-일관성 옵션 > 최종 일관성 : 1개에만 쓰여도 읽기 가능(업데이트 되지 않은 정보 읽을 가능성 있음) -> 재 조회시 .... > 강력한 일관성 : 3개가 모두 복제가 된 후 읽기 가능
VPC - Virtual Private Cloud > 프라이빗 네트워크 공간 > 워크로드 논리적 격리 > 액세스 제어 및 보안설정 > 보안그룹, NACL 설정 > 가용영역에 걸쳐서 생성 > 단일 계정에 다중 VPC => 결제 1개 > 다중 계정 및 다중 VPC => 대규모 조직 > 계정당 리전당 VPC 5개까지...20개 리전에 총 100개 VPC 생성 가능 > CIDR 지정
subnet > subnet 당 5개의 IP주소를 예약하여, 할당하여 사용할 수 없음. > 하나의 가용영역에 존재 > 서브넷당 1개의 라우팅 테이블을 만드는 것을 권장 . 라우팅 테이블 1개로 여러 서브넷 연결하는 것이 가능하긴 함.
인터넷 게이트웨이 > 관리형 서비스
NAT 게이트웨이 > 관리형 서비스 > 퍼블릿 서브넷에 생성해야함.
NAT 인스턴스 > 비관리형 서비스
ELB 구성시 웹도 private에 구성해도 됨.
ENI
EIP > 리전당 5개 허용 > 안써도 비용 발생 > NAT G/W에는 반드시 사용
보안그룹 > 방화벽 > 인스턴스 레벨에서 설정 > 상태저장 - 인바운드만 설정
NACL > 서브넷 경계의 방화벽 > 모든 인바운드 아웃바운드 허용 > 상태 비저장 - 인바운드,아웃바운드 모두 설정
보안그룹과 NACL은 certi.에 많이 나옴
intelligent teering > 날짜가 지나면 자동으로 이동
> access가 적은 데이터는 조금 더 저렴한 스토리지로 이동하여 비용을 줄일 수 있음.
정적 EC2는 S3만으로도 만들 수 있다.(정적 웹사이트)
S3는 무제한 갯수, 용량 (단 1개의 객체 최대 크기만 5테라 제한)
EC2 만들때 ID/PW로 접속하는 것을 권장 하지 않음 > keypair이용하여 접근
RDS - 수직 확장만 가능
DynamoDB- key, value - 비관계형 > 파티션키 : 중복제거 (필수) > 정렬키:옵션 > 클로벌 테이블 - 여러 리전에 복제
VGW(Virtual private G/W) : VPN 연결시 사용 > 속도가 좀 떨어짐, 네트웍도 일정하지 않음 그래서 Aws Direct connet 사용 (1 or 10gbps 사용)
Aws Direct connet : DX로케이션이 있으며, AWS와 전용선 사용 > 고객사에서 DX로케이션까지 연결하면 AWS전용선 사용
> DX 로케이션이 가산센터(?) 인 것 같습니다.
VPC는 기본적으로 VPC끼리 격리 > 연결하려면 VPC peering 써야함. > peering 하려면 사설 IP대역을 다르게 써야함 > 다른 리전간 VPC peering 쓸수 있음. > 다른 계정의 VPC도 peering 가능 > 전이적 피어링관계는 안됨 A-B간, B-C간 피어링할때 A-C간은 자동으로 안됨 > 다른 VPC의 I-G를 사용하여 외부통신은 할 수 없음. > VPC피어링 시 라우팅테이블 추가해야함(대상을 VPC피어링 이름으로...)
EndPoint : VPC내 Ec2가 VPC외부에 있는 S3,dynamoDB 연결할때 IGW가 아닌 사설망 형태도 연결하기 위해 사용 > 동일한 리전에서 써야함 > NAT G/W 없어도 S3 연결가능 (중요 포인트) > 인터페이스 엔드포인트 : 프라이빗 IP가 만들어지며 통신 > 게이트웨이 엔드포인트 : ID가 생성되어 라우팅 테이블에 설정 가능
AWS transit Gateway : 여러 VPC와 연결, Direct connect, VPN 등을 연결해주는 허브역할 > VPC간 각각 peering 하지 않고 gateway사용 (매우 중요)
ELB connection Draining > ELB에서 해시체크 하다가 이상있는 EC2를 제거해야하지만, 기존 사용자들을 위해 기다려주는 기능
Elastic Beanstalk : Docker 컨테이너(OS+Platform)를 기반으로 애플리케이션을 쉽게 배포, 운영, 관리를 도와주는 서비스 (서비스 사용료x, 리소스 사용료O) →애플리케이션을 업로드하기만 하면 용량 프로비저닝, 로드 밸런싱, 조정, 오토스케일링, 애플리케이션 상태 모니터링에 대한 세부 정보를 자동으로 처리(예: AutoScale시 자동으로 in/out 해줌)
* 엣지로케이션
- End User의 지연시간을 줄이고 성능을 향상하고 보안을 위해 구성한 로컬지점(AZ간 고속Network구성)
* EC2 태그 기준으로 과금 상태 확인이 가능함 (초단위 종량제 요금) - 태그하지 않을 경우 EC2 전체에 대한 비용만 표시됨.
* AMI = OS 이미지 + α : α - S/W 인 경우가 대부분임. - template AMI : 아마존에서 제공 - Golden Image 를 사용자가 만들 수 도 있음. ▶ t2.micro (AMI 이미지 이름에 대한 설명) > t-family > 2-generation > micro- scale
* EC2 - 전용 인스턴스 : 한대의 기계를 나만 쓰지만 기계가 정해져 있지 않음 - 전용 호스트 : 기계를 나만 쓰고 기계가 정해져 있음
* VPC > 기본적으로 public에 연결되지 않음, 격리된 프라이빗 가상 네트웍
※ 버킷 이름은 유니크 해야함 : 교차 리전 지원
<리소스 접근 제어 정책> 1. 사용자 기반 > IAM
2. 리소스 기반
* S3에서 사용하던 데이터를 백업할 경우 glacier 사용 > 자주 엑세스 하지 않는 데이터에 최적, 검색시간이 오래 걸림
* S3는 S3에서 송신한 데이터를 기준으로 전송 비용 과금 > cloudfront (CDN) 와 연결해서 사용할 수 있음.
* EBS는 용량 제한 있음(16테라) > 반드시 EC2에 마운트해야함 > 스냅샷을 뜨면 S3에 저장 > EC2 제거시 스냅샷은 삭제가 안되므로, 잘 확인해야함.
- 선도적인 시장지위(1등) - 광범위하고 성숙도 높은 서비스 - 대규모 조직지원 가능 - 광범위한 교육지원 - 글로벌 지원 가능
- 두 번째로 큰 공급자 - Microsoft 도구 및 소프트웨어와의 통합 - 광범위한 기능 세트 - 하이브리드 클라우드 - 오픈 소스 지원
- 클라우드 기반 비즈니스를 위해 설계되었습니다. - 오픈 소스 및 이식성에 대한 약속 - 좋은 할인 정책 및 유연한 계약 - DevOps 전문 기술(지원)
약점
- 사용하기 어렵다. - 원가관리가 필요 - 저항하기 힘든 옵션
- 문서 관련 문제(문서가 빈약) - 불완전한 관리툴(툴 기능부족)
- IaaS 시장 후반 참가자 - 기능 및 서비스 감소 - 역사적으로 기업 중심이 아님(개발자 중심)
Compute Services
• EC2 (가상서버) • Elastic Container Service (Docker컨테이너 실행 및 관리) • Elastic Container Service for Kubernetes (관리형 쿠버네티스 실행) • Elastic Container Registry (Docker 이미지 저장 및 검색) • Lightsail (가상 프라이빗서버 시작 및 관리) • Batch (규모와 상관없이 배치작업 실행) • Elastic Beanstalk (웹 앱 실행 및 관리) • Fargate (서버/스토리지관리가 필요없는 컨테이너 실행) • Auto Scaling • Elastic Load Balancing • VMware Cloud on AWS
• Simple Storage Service (S3) - 확장가능한 오브젝트스토리지 • Elastic Block Storage (EBS) - EC2용 블록스토리지 • Elastic File System (EFS) - 관리형 파일스토리지 • Storage Gateway - 하이브리드 스토리지 통합 • Snowball - PB 규모의 데이터 전송 • Snowball Edge - 온보드 컴퓨팅으로 PB규모의 데이터 전송 • Snowmobile - 엑사바이트(EB) 규모의 데이터 전송
• Blob Storage • Queue Storage • File Storage • Disk Storage • Data Lake Store
• Cloud Storage • Persistent Disk • Transfer Appliance • Transfer Service
Local NVMe SSD (고성능,낮은 Latency 워크로드용) Block Volume (고성능 워크로드용) File Storage (가용성,공유파일시스템) Object Storage(다양한 데이터 종류와 인터넷 Access) Archive Storage(저렴하고 장기간 보관 사용) Storage Gateway (클라우드로 비동기식 데이터 이관시)
Database Services
• Aurora (고성능 관계형 DB) • RDS (MySQL,PostgreSQL,Oracle,SQL Server,MariaDB 관계형DB) • DynamoDB (NoSQL DB ) • ElastiCache (인 메모리 캐시) • Redshift (빠르고 간단한 비용효과적인 DW) • Neptune (완전관리형 그래프데이터서비스) • Database migration service (최소한다운타임으로 DB 이관 서비스)
•SQL Database • Database for MySQL • Database for PostgreSQL • Data Warehouse • Server Stretch Database • Cosmos DB • Table Storage • Redis Cache • Data Factory
Virtual Cloud Network(VCN-가상네트워크) - Subnets ,VNIC DYNAMIC ROUTING GATEWAY(DRG) Service Gateway(Cross-Premis 연결서비스) DNS Fast Connect(Dedicate/Private N/W 연결서비스) Load Balancing( 로드발란서)
Security
• IAM (인증 및 권한부여) • Key Management Service (데이터 암호화 보안) • Web Application Firewal-WAF (방화벽) • Cognito (ID관리) • Shield (보호 기능이 있는 클라우드서비스)
• AD(Active Directory) , AD Premium (인증 및 권한부여) • Storage Service Encryption (데이터 암호화 보안) • Application Gateway (방화벽) • AD B2C (ID관리) • DDoS Protection Service (보호 기능이 있는 클라우드서비스)
• Cloud IAM, Cloud Identity-Aware Proxy (인증 및 권한부여)