0.클라우드/2.AWS

Architecture On AWS 교육

로바이 2019. 7. 6. 21:14

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

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/)

AWS 용어 - 용어집 https://docs.aws.amazon.com/ko_kr/general/latest/gr/glos-chap.html

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

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

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


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저장)

    2)안정성 : Auto-Scaling

    3)비용최적화 : Calculator, cost explorer, trusted advisor(standard, advanced 2개버전)

    4)운영 우수성 : Cloud watch

    5)성능 효율성


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)
=================================================================================

AZ-AZ간 : private link

리전-리전간 : AWS 백본 네트웍 연결

 

Edge location (4가지 서비스 제공)
  >  CloudFront
  > Route53
  > WAF
  > shield

 

Regional edge cache

 > 리전과 edge location 사이쯤에  Regional edge cache 가 있음

 > edge location과 regional edge cache는 선택이 불가함

 

AWS 서비스
1. global

2. Region : S3, DDB
    VPC 내부, VPC 외부에 만드는게 있음.

3. AZ : EC2,EBS,RDS

  > 버킷 속 파일 중간에 디렉토리 만든다고 해서 파일 정보가 디렉토리에 속하지않음
    . 디렉토리+파일 => 키값으로 저장

 

S3 서비스

  > S3 객체 잠금 기능 : 위변조 하지 못하도록 할때 사용

  > S3 - 객체 크기 5TB 제한, 그 외에 제한 없음.
         -  대용량 분속 시 사용 가능
         - 백업 도구로 사용 가능
   > S3 transfer acceleration
      -  cloudFront edge locatiion 사용하여  아마존 네트웍 사용(중간 구간) : 비용발생


snowball- 테라 이동

  > 디스크 box같은 것으로 데이터 배송하여 migration함

 

snowmobile- 페타 이동

  > 컨테이너 트럭 같은 것으로 데이터 migration(트럭으로 이동)


저장후 액세스 안할경우 - S3 galcier 사용이 유리

cloudFront는 S3와 사용하는 것이 좋다(리전과 통신하는 비용 발생하지 않음)


검색을 해야하는 경우는 S3 galcier를 사용하지 않는 것이 좋다.

 

=====================================================

실습1

Amazon S3에 버킷 생성
사용자의 버킷에 콘텐츠 업로드
객체에 대한 액세스 활성화 
웹 사이트 업데이트

============================================================

시험칠때 한국어로 보면 이해 안될때 영문 전환해서 잠깐 볼수 있음
영문으로 신청하면 한글로 못봄
30분 연장신청 가능하여, 신청 전에 30분 연장한 후 신청해야함.
130분=>160분(영문 시험)

solutions architect associate
 > 2018년 8월 이후 신버전으로 변경됨.

비용효율적인 것은?
> 일단 구성은 다 됨.

============================================================

비관리형 서비스
 - EC2에 EBS붙여서 DB설치하여 만들어야 함.


관리형 서비스
 - RDS : 기존 오라클에서 쓰는 기능 중 안되는거 있을 수 있음.
        이 경우 비관리형 서비스를 써야함

 
EC2 생성
 AMI - Amazon Machine Image
     - 사전구축, marketplace, 자체 생성(3가지 경우)
     - 루트볼륨용 텔플릿, 시작권한, 블록 디바이스 매핑(EBS가 대부분,Instance 볼륨이 가능하나 휘발성임)
     - AMI만들면 S3(아마존, 내 계정 S3가 아님)에 저장됨(비용발생)

 

EC2 사용자 데이터는 EC2 생성시 1번만 수행 됨(주의사항)
 - 재기동할때는 수행되지 않음

 

*NAS서비스
EFS  : 공유볼륨 (리눅스) - EC2에 연결(여러 EC2동시 Access, 리전간 공유가능)
  - 가용영역,리전,VP, 계정

FSx : 공유볼륨 (윈도우)
  - 가용영역

  > NFS버전은 4.0만 지원함

 

EC2 요금 옵션
 > 온디맨드 인스턴스 : 사용한 만큼
 > 예약 인스턴스 : 1~3년 미리 예약 (앞보다 70% 저렴)
 > 스팟 블록 : 온디맨드보다 90% 저렴
 > 전용 옵션
   - 전용 인스턴스 : 처음 선점한 사용자가 호스트 사용
   - 전용 호스트 : 호스트가 지정, 호스트 아이디 제공

 

사용자의 인스턴스 추적 : 태그 활용
 > 관리,검색, 필터링 가능
 > 비용 분리 등 관리 용이함
 > 태그 기준으로 패치 적용도 가능함.
 > 운영자에게 꼭 필요함. 정책 만드는게 좋음. 태크 표준 만드는 게 좋음.


amazon RDS 마스터
 > EC2 인스턴스와 연결
 > AZ가 다른 EC2와 연결 가능함.


aurora - serverless 기능 추가
  > 쿼리시에만 비용과금


dynamoDB - 완전 관리형 비관계형 데이터베이스
           이벤트 중심 프로그래밍(서버리스) > lamda 수행
           최상의 수평 확장 기능

         - 글로벌 테이블 : 리전에 테이블 만들면, 다른 리전에 업데이트(복제) 됨
       > 최근에 aurora도지원

     -세션 정보는 dynamoDB 에 저장.(매우 중요, 고속 저장)
     - 임시 데이터

      기본 3개 복제됨(비동기 방식)

   -일관성 옵션
    > 최종 일관성    : 1개에만 쓰여도 읽기 가능(업데이트 되지 않은 정보 읽을 가능성 있음) ->  재 조회시 ....
    > 강력한 일관성 : 3개가 모두 복제가 된 후 읽기 가능

   -s3 와 유사하게 만들어짐. AZ 밖에 구성

 


============================================================================


(((네트웍 구성)))

 

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 - 비관계형
> 파티션키 : 중복제거 (필수)
> 정렬키:옵션
> 클로벌 테이블 - 여러 리전에 복제

 

multi-aging : standby DB : 작업 시 넘겨놓고 작업

 

ELB
> CLB : Classic
> ALB : application
> NLB : Network

 

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를 제거해야하지만, 기존 사용자들을 위해 기다려주는 기능

ELB는 EC2의 상태확인

 

Route53 : DNS서비스
> ELB의 상태 확인


IAM

사용자: 1. 사용자명,암호 -> console작업
2. 액세스키ID, 비밀액세스키-> CLI,SDK

 

IAM정책은 AWS 서비스에 대한 액세스만 제어함.


정책(Json) 1. 자격증명 기반(대부분 서비스)
2. 리소스 기반 - 몇가지 리소스에만(S3,S3 glacier,KMS) 예)버킷

 

IAM정책은 거부가 우선임

 

정책은 사용자
그룹
역할에 권한부여
> 어플리케이션에는 정책 부여불가

 

역할은 사용자와 서비스에만 정책적용가능
> 사용자에게는 임시 권한을 부여하는 형태임 (로그인 직후엔 권한없음)

 

역할은 스위치다*****
> s3권한이 없던 유저가 역할을 통해 s3 접근 권한을 받으면, s3 접근가능함.
명시적 거부가 우선이지만 이경우는 다름.

 

역할
> 외부 인증 사용자에게 액세스 제공

 

AWS STS : 자격증명 서비스 (service token service)

SAML : SSO같은 기능


AWS Oraganizaions : 정책설정. 통합관리, 결제 통합 관리, 개별 권한 보다 우선함

 

S3 권한 부여(3가지방법)
> 자격증명(IAM)
> 버킷정책
> ACL

 

Auto scaling 방법(3가지)
- 예약 : 시간 정해서 조정
- 모니터링 : 사용율 변화에 따라 조정
- 예측 (서울리전에는 없음) : 머신러닝을 통해 예측해서 조정


===========================================

시험에 관한 FAQ :
http://bit.ly/aws-study-resource

 

acloud.guru : 교육 사이트

 > discussion에서 tip 보면 좋음 , 7일 무료

==========================================