상세 컨텐츠

본문 제목

[AWS교육 요약]-Technical Essential : IAM/Role/EC2/VPC/ELB

IT 이야기/IT 상식

by 리치윈드 - windFlex 2022. 7. 11. 18:25

본문

반응형

AWS 교육과정 요약 : AWS Technical Essentials. 참조 : AWS Training (https://aws.amazon.com)

[주요 내용 ]

  • IAM 소개
  • EC2  소개
  • AWS Lambda  소개
  • VPC  소개
  • AWS DB 서비스 소개
  • AWS Networking  소개
  • AWS Storage  소개
  • AWS Farget  소개
  • Monitoring  소개
참조 :AWS Skill Builder 한글화 과정 목록  (https://github.com/serithemage/AWS_class_resources/tree/main/AWS_Skill_Builder)

Technical Essential - AWS 서비스에 대한 기초/교양과 같은 코스웍

AWS Technical Essential은 대학으로 치자면 교양과 같은 과목이다. 

실제 각 관심있는 서비스와 프로비져닝, 활용에 대해 집중하기 보다는, 기초적인 서비스의 개념과 AWS가 추구하는 철학, 그리고 어떤 서비스들을 제공하는지 전체적인 큰그림을 그리는 과정이다.  기초적인 설명과 관련된 실습 (Qwiklabs)를 해 볼수 있다. 

따라서, 만약 AWS에 대한 경험이 없다면 필수적으로 듣는것을 추천한다. 또한, AWS Certi.를 준비하신다면 당연하게도 필요한 영역이다.  다만, 이미 AWS를 잘 알고 있고 사용중이며, 어떤한 목적으로 특정 서비스에 대한 사용방법을 익히고자 한다면 해당 과정은 적절하지 않을 수 있다. 

 

 

[ AWS 기초 서비스에 대한 설명 ]

리전/가용영역

 - 1개 이상의 데이터 센터 묶음 가용영역, 2개 이상은 가용역역을 묶어서 리전

 - 2개 이상의 가용영역으로 나누어서 DR

* 리전을 선택하는 것이다. 가용영역은 선택 안됨.

전세계 AWS 리전들.

엣지 로케이션

캐시 서비스. 미디어 콘텐츠가 로케이션 인근에 CDS와 같은 서비스 제공.

 

AWS 서비스 관리 방법 종류

- 1) AWS 관리 콘솔 (웹사이트), 2) AWS 명령줄 (AWS CLI), 3) AWS SDK (프로그래밍 언어별 지원되는 라이브러리)

 

공동 책임 모델 다이어그램

AWS 보안 공동택임 모델.

 

 

 

인증/권한 - IAM (Identification Authority Management), Role (역할)

  • IAM root 유저 : Full Access 권한
    • 권한을 줄일 수 없음. 작업용으로는 사용하지 말것. Billing 도구로만 사용. Multi-Factor 인증
  • 일반 작업용 계정은 IAM User를 생성하여 사용할 것
    • IAM User는 처음에 아무런 권한도 없음
    • Policy를 통하여 권한을 부여함
    • IAM User마다 권한을 부여하는 것은 매우 번거롭고 어려움 --> IAM User Group으로 그룹관리

IAM 그룹 및 IAM 사용자 (좌). IAM Policy 의 예 (중), IAM 역할(Role) (우)

  • Role (역할) ---> 중요
    • 기본적으로 Role은 임시적인 권한을 가정함
    • 외주 개발자가 참여할 경우 권한을 부여할 때, 기간 설정 (권한 만료)를 포함하여 권한을 설정함. (Assume)
    •  임시로, Role을 부여 (STS Key)
    • Role은 사용자 뿐만 아니라 서비스가 부여 받을 수도 있다. ex) 서비스용 EC2 (연동)이 Role을 부여 받을 수 있음

AWS 컴퓨팅 - EC2/ECS/EKS

EC2 인스턴스 (Elastic Compute Cloud)

  • VM이라고 하지 않고 "인스턴스"라고 명명. 즉, 언제든지 삭제/재기동/프로비져닝하는 용도라고 볼 수 있음
  • 크기 조정, 빠른 프로비저닝 (몇분 안에 시작), 사용한 만큼 요금 지불 (삭제하면 요금 증가하지 않음)
  • 인스턴스 유형 (어떤 OS, 크기), VPC/Subnet 등을 선택

 

ECS (Elatic Container Service)

 

 

 

 

ECS --> MSA(마이크로서비스 아키텍처)로 컨테이너가 수백/수천개 이상이 되면, 이들을 관리해 주어야 한다.

Container Orchestration 서비스

 

EKS (Elastic Kubenetes Service)

Container Orchestration 서비스 중 Kubenetes 형으로 특화 한 서비스

 

 

 

 

서버리스 (Serverless)

- 서버 관리를 하지 않아도 됨 : 서버 관리 (장애관리, 이중화, 백업, 규모조정, ... )

AWS Lambda : 서버를 프로비저닝 하지 않고도 코드를 실행. 사용한 컴퓨팅 시간 만큼 요금. 코드가 실행되지 않으면 요금 청구되지 않음

AWS Lambda를 사용 --> 사실상 모든 유형의 App./Backend Code를 별다른 관리 없이 실행할수 있음.

AWS 서버리스 서비스 종류 (좌), AWS Lambda flow (우)

AWS Lambda에 대한 상세 내용 : https://aws.amazon.com/ko/lambda/

AWS Lambda를 이용한 파일처리 

AWS Lambda를 이용한 웹애플리케이션 구조

 

 

 

실습 - 1

  • IAM User 및 권한 설정해 보기
  • 이미 User에 3개의 IAM 사용자가 생성되어 있음. User Groups에 이미 S3 권한, EC2 권한, Admin 권한으로 권한그룹이 설정되어 있음.
  • 실습의 목적은 User-1 : S3만 ReadOnly, User-2: EC2 ReadOnly, User-3 : Admin/Read/Start/Stop 권한으로 각각 독립적으로 설정하는 것이 목표임
  • S3 ReadOnly, EC2 ReadOnly, Admin 의 각 권한에 가서 "사용자 추가"하여 권한을 등록하는 것이 실습 과정임

 

 

AWS Network - VPC

VPC를 생성할 때,

  • 1) 리전을 결정해야 함. 2) VPC 이름, 3) VPC IP 대역 설정 (Private)
  • VPC는 기본적으로 외부와의 통신이 단절되어 있음. Public Internet과 연결하려면, 인터넷 게이트웨이 (Internet GW)와 VPC를 연결이 되어야 한다. 여기에서 연결을 한다 함은 Routing Table에 등록해 주는 것을 의미한다. 
    Internet GW는 NAT (Network Address Translation)을 사용하여 Outbound로 인터넷은 연결하고, Inbound로는 연결되지 않도록 설정할 수 있다. 
  • 기존 온프레미스 데이터센터와 전용선을 연결하듯이 연동은 어떻게 하는가? 가상 프라이빗 게이트웨이(VGW)를 만들고 VPC에 연결, 가상 프라이빗 게이트웨이와 데이터센터의 게이트웨이를 VPN으로 연결.

 

(방화벽 기능-유사 기능) 네트워크 차단/허용에 관한 부분은, AWS에서 다음과 같이 허용/차단 할 수 있다. 

  • IGW에 라우팅에 의한 차단/허용
  • IAM 정책을 사용하여 액세스 제어
  • NACL에 의한 IP/포트의 허용/차단 (상태 비저장 : Stateless)
  • 보안 그룹 (Security Group) 허용/차단 (상태 저장: Stateful)
  • (Host에서) Iptables, Windows 방화벽 등

AWS 방화벽 및 네트워크 차단 기능

 

 

AWS 스토리지 - EBS / S3

AWS Storage : 인스턴스 스토어, EBS  (좌),   S3 (우)

EBS (Elastic Block Store) 

EC2 인스턴스에 사용되는 소토리지는 임시 블록 수준 스토리지이다. 따라서, EC2 인스턴스를 중지하거나 종료하면 스토리지 데이터가 손실됨 (일시적이다.) 인스턴스가 중지/종료 될 때 데이터를 보존하려면, EBS를 사용하면 된다. EBS는 백업/스냅샷 등의 서비스를 지원한다.

 

Amazon S3

  • IAM 정책, 버킷 정책, ACL, 암호화 기능을 지원

S3는 IAM 정책을 사용할 수 있다. 예를 들어 인스턴스에서 실행중인 앱플리케이션이 S3버킷에서 파일을 검색해야 하는 경우, IAM역할을 인스턴스에 연결하면 된다. 

S3 버킷에 액세스 권한을 부여하는 또다른 방법은 버킷 정책을 사용하는 것이다. 버킷 정책은 JSON 기반 IAM 정책을 사용한다.

 

[S3의 기본 스토리지 클래스]

  • Amazon S3 Standard : 기본 스토리지 클래스. 웹사이트/콘텐츠 배포와 같은 범용 스토리지. 데이터 가용영역이 최소 3개에 저장된다. (가용역역 3개가 동시에 삭제될 경우 극히 낮음)
  • S3 Clacier : 몇분 안에 검색할 수 있는 데이터를 보관. 1~5분 내에 데이터를 검색할 수 있다.
  • S3 Glacier Deep Archive : 거의 액세스하지 않는 데이터를 보관. 변경후 데이터 검색하는 기본 시간은 12시간이다. 백업하는 용도로 적당한다. 

 

 

AWS 데이터베이스

AWS 지원 데이터베이스 유형 (좌), 데이터베이스 유형별 AWS서비스 (우)

 

AWS에서 지원하는 8가지 유형의 데이터베이스 (일반, 관리형, 완전관리형)

  • 관계형 데이터베이스 : RDS (관리형) , Aurora, Redshift
  • Key-Value 데이터베이스 : DynamoDB
  • 인메모리 데이터베이스 : Memcached, Redis
  • Document 데이터베이스
  • 와이드 컬럼 : Keyspaces
  • Graph : neptune
  • 시계열 : Timestream
  • 원장 : OLDB

[ Amazon RDS 서비스 ]

Amazon RDS 서비스 기본 구조도

  • 관계형 데이터베이스에 대한 관리형 서비스 (PaaS 형태로, 인프라 프로비저닝, 데이터베이스 설정/패치/백업 등 알아서 관리됨) 스 생성/
  • 내부적으로는 EC2 인스턴스 위에 RDS가 올라가서 구동되는 구조임 (기본적으로 Private Subnet)
  • 따라서, IAM 등 EC2에서 설정하는 부분은 대부분 설정이 가능함

 

[Amazon DynamoDB]

  • 완전 관리형 Key-Value 데이터 베이스 (NoSQL)
  • 매우 우수한 확장성, 암호화 제공
  • JSON 형태로 저장

 

 

 

 

Amazon 모니터링(Monitoring)/로드밸런싱 서비스

Amazon CloudWatch

  • AWS 및 온프라미스 인프라 및 리소스를 실시간 모니터링
  • 단일 위치로 지표를 모두 보낼 수 있다. --> 단일 위치에서 여러 리소스를 모두 모니터링/관리 가능
  • 경보 대응 및 자동화 : CPU/Memory 등 리소스 사용 알람, 네트워크/트래픽, 로그,  비용 알람 등
  • CloudWatch 경보를 생서하여, 대시보드 등을 쉽게 관리 할 수 있음.

Amazon CloutWatch. 네임스페이스(자원 태그), EC2 지표 38개 지표 중 관심 지표만 선택 (차원) , 대시보드의 예 (우)

 

[로드 밸런싱]

  • ELB (Elastic Load Balancing) : 웹 애플리케이션의 트래픽에 따라서 로드밸런싱 지원

Amazon ELB 기본 구조 (좌), Amazon Load Balancer의 유형(우). Application Load Balancer (L7), Network Load Balancer (L4), Classic Load Balancer (L4/L7이지만 과거 유지 버전). 자세한 내용은 https://aws.amazon.com/elasticloadbalancing 참조.

 

Application Load Balancer & Network Load Balancer

Application Load Balancer (L7) 부하 분산으로 지원하는 기능 (좌), Network Load Balancer 부하분산 지원 기능 (우)
로드 밸런서의 종류별 차이에 대한 도식화

 

 

[ Auto Scaling ]

  • Amazon EC2 Auto Scaling의 구성요소
    • 시작 템플릿 : EC2를 시작할 때 정책 --> 당연하게도 동적으로 신규 인스턴스를 구동해야 하므로, 그 때 어떤 인스턴스를 구동할지 이미지를 정해 주어야 한다. EC2를 신규 생성하는 과정과 유사하다.
    • 조정 정책 : 어떤 상황이 되면 몇개까지 인스턴스를 증가할 것인지 정책을 지정
    • Amazon EC2 Auto Scaling 그룹 : Auto Scaling이 적용할 대상 그룹을 지정해 주어야 한다. 
      --> LB를 선택하고, 앞서 설정한, 대상을 지정하고 (VPC지정), 시작템플릿을 지정하고, 조정 정책을 정해주고, 알람 등을 설정해 주는 최종 단계

크기 조정 (Auto Scaling) : 수직 크기 조정, 수평크기 조정. Amazon Auto Scaling은 수평 크기 조정을 의미함. Auto Scaling 그룹의 예 (우) : 처음에는 3개 인스턴스로  시작, 트래픽이 작으면 2개로 줄이고, 트래픽이 많으면 5개로 증대.

 

 

 

 

로드밸런스 (Application LB) 실습

 

 

 

초기 상태. Web Applicaiton용 EC2 인스턴스가 1개 구동되어 있음.
구동중인 Web Application에는 Admin Tool로써 Stress Testing 기능이 포함되어 있음. 기능 동작 시 10분동안 CPU 부하를 줌
CPU 부하를 몇분 가하고 난 다음 다시 EC2 인스턴스를 살펴보면, 인스턴스가 3개로 늘어나 있음을 확인 할 수 있다. Name Field에 "-"로 표현된것이 증가된 인스턴스 이다.

 

 

반응형

관련글 더보기

댓글 영역