Devops/Cloud(AWS)

[클라우드컴퓨팅] 6. AWS-Service-Security, Cost Billing, AWS 이론 - Load Balancing

KeyDi 2022. 10. 3. 00:46
728x90

AWS-Service-Security

공동 책임 모델 (Shared Responsibility Model : SRM)

AWS의 책임 : 클라우드의 보안

  • 데이터 센터의 물리적 보안
  • 하드웨어 및 소프트웨어 인프라 보안 : 스토리지 폐기, 호스트 OS 액세스 로깅 및 감사
  • 네트워크 인프라 : 침입 탐지
  • 가상화 인프라 : 인스턴스 격리

 

고객의 책임 : 클라우드에서의 보안

  • EC2 instance : 운영체제 패치 적용, 유지 관리 등 (운영체제 업데이트 최신 버전 유지)
  • 애플리케이션 : 암호, 역할 기반 액세스 등
  • 보안 그룹 구성
  • OS 또는 호스트 기반 방화벽 : 침입 탐지 또는 차단 시스템
  • 네트워크 구성 (private 네트워크 구성)
  • 계정 관리 : 각 사용자에 대한 로그인 및 권한 설정 (IAM 계정 보안 사용)

서비스 특성 및 보안 책임

  • IaaS : 고객은 네트워킹 및 스토리지 설정을 유연하게 구성, 고객이 관리, 액세스 제어를 고객이 구성
  • PaaS : 고객이 기본 인프라를 관리할 필요 X, AWS가 처리
  • SaaS : 사용자가 관리할 필요 X

 

AWS CloudTrail (클라우드 흔적)

  • AWS계정의 사용자 활동 모니터링 및 API 사용 추적
  • 문제 해결에 유용 (문제 발생 시 원인 파악에 활용)
  • 로그 파일은 S3 버킷으로 전송됨
  • 기본 AWS CloudTrail 이벤트 기록은 기본적으로 활성화되어 있으며 무료
    • 최근 90일 간 계정활동 모든 관리 이벤트 데이터 포함
  • 90일이 지난 로그 및 이벤트 알림 기능 활성화 -> 추적 생성

 

Other Service

AWS Trusted Advisor

비용 절감, 성능 개선, 보안 강화 도움 되는 지침 제공

 

AWS Key Management Service (AWS KMS)

  • 암호키 생성, 관리
  • AWS 서비스 및 애플리케이션 전체의 암호화 사용 제어
  • AWS CloudTrail과 통합할 경우 모든 키 사용 로깅
  • FIPS(Federal Information Processing Standard) 140-2에서 검증한 HSM (하드웨어 보안 모듈)을 사용하여 키 보호

 

Amazon Cognito

  • 웹, 모바일 애플리케이션에 사용자 가입, 로그인 및 액세스 제어 추가 (로그인 인증, 액세스 제어 기능)
  • 수백만 명의 사용자까지 확장
  • Facebook, Google, Amazon과 같은 소셜 자격 증명 공급자와 Microsoft Active Directory와 같은 엔터프라이즈 자격 증명 공급자를 사용한 로그인 지원 (구글 아이디로 로그인과 같은 기능)

 

AWS Shield

  • DDoS 방어를 위한 관리형 서비스
  • AWS에서 실행되는 애플리케이션 보호
  • Standard는 추가 비용 없이 활성화 (무료)
  • Advanced는 선택형 유료 서비스

 

데이터 암호화

유휴(저장된) 데이터 암호화

  • 보안 키로 데이터 인코딩
  • 보안 키가 있는 사용자만 데이터 디코딩
  • AWS KMS에서 보안 키 관리

전성 데이터 암호화

  • TLS(전송 계층 보안)
  • AWS Certificate Manager : TLS 인증서 배포 관리 및 갱신 방법 제공
  • HTTP(=HTTPS)은 보안 터널 생성

AWS-Service-Cost Billing (비용, 결제)

AWS 요금 모델

AWS의 3가지 기본적인 비용

  • 컴퓨팅 (시간, 초당 청구. 인스턴스 유형별로 다름)
  • 스토리지 (일반적으로 GB당 청구 - S3, EBS)
  • 데이터 전송 (아웃바운드 요금은 집계하여 청구, 인바운드는 무료, GB당 청구)

 

총 소유 비용 (Total Cost of Ownership : TCO)

TCO (Total Cost of Ownership : 총 소유 비용)는 시스템의 직,간접적 비용을 확인하는데 도움 되는 재정적 추정

  • on-premise와 AWS에서 전체 인프라 환경 또는 특정 워크로드를 실행할 때의 비용을 비교하기 위해 사용
  • 클라우드로 이전하기 위한 예산을 책정하고 비즈니스 사례를 만들기 위함
  • 인프라 구축, 서비스에 필요한 자원을 소유하기 위한 전체 비용을 추정하는것

이러한 모든 것들을 고려하여 TCO를 산출한다. 어떤 비용이 유리할지 비교하여 on-premise 또는 AWS를 사용할지 결정.

 

AWS Billing Services

AWS 결제 대시보드

 

도구

 

 

Cost Explorer (영역별 비용 확인 기능)

 

예산 (budgets)

 


AWS 이론 - Load Balancing

  • Load Balancing : 네트워크 기술의 일종, 네트워크 트래픽을 하나 이상의 서버나 장비로 분산하는 기술
  • 로드 밸런서 (Load Balancer) 로드 밸런싱(작업 부하의 균형을 맞추는 과정을 수행)을 수행하는 SW, HW 

Scale up / out : 웹 트래픽 증가에 대한 처리 방식

* Scale out에서만 로드 밸런싱 사용 가능

  • Scale up : 더 높은 성능 가진 서버로 업그레이드, 비용 가용성 문제 발생
  • Scale out : 저렴한 여러 개의 노드로 cluster 구성, 가용성 높음, 로드 밸런싱 사용 가능
    •  하나의 노드 문제 생겨도, 다른 노드로 정상 서비스 가능. (가용성)

 

AWS ELB (Elastic Load Balancing)

  • EC2 instance, container, IP address 같은 여러 대상에 대해 수신 application 또는 network traffic을 여러 AZ에 배포
    • 여러 가용 영역의 서버로 트래픽을 분산한다.
  • workload를 다수의 computing resource(서버)로 분산
  • application의 가용성, 내결함성 향상

특징)

Health check (상태 확인)

  • ELB와 연결된 instance의 연결 상태를 수시로 체크
  • HTTP, HTTPS : 웹 페이지 접속 시도에 대한 응답 코드 (200) 정상 반환 여부 확인 (상태 나쁘면 request 주지 않는다.)

Sticky session

  • client가 처음 접속한 서버로 계속 연결시켜줌
  • 처음 연결된 client에 별도의 HTTP 기반의 쿠키 값 생성, 이용

고가용성 구성

  • Route53 등의 AWS의 다른 서비스와의 연계를 통해 가용성 서비스 제공

SSL termination 및 보안 기능 -> ELB가 보안 기능도 제공을 한다.

  • HTTPS와 같은 암호화 통신 : 웹서버에 별도의 공인인증서 필요
    • (암호화된 데이터 클라이언트 -> 서버로 보내기 전에 인증서를 사용한다.)

* Load Balancer는 클라이언트 트래픽이 여러 서버로 트래픽이 분배될 수 있도록 한다.

ELB의 보안기능 강화

 

ELB의 보안기능 강화

ELB의 종류

  • Application Load Balancer (실습)
  • Network Load Balancer (네트워크 트래픽 분산 관련)
  • Classic Load Balancer

 

Application Load Balancer : 응용계증(7계층: HTTP(S))에서 동작하는 로드 밸런서.

  • load balancer : 클라이언트에 대한 단일 연결 포인트
  • listener (어떤 프로토콜 수신? 어떤 규칙을 이용해서 타겟으로 보낼지를 정의하는 역할을 함)
    • client의 접속 요청 검사 -> target group으로 보냄
    • rule을 정의 : target group, condition, prority - 어떤 Target으로 보낼지를 결정
    • 즉, request -> listener rule 결정 -> target group에서 target 결정
  • target group : 등록된 target으로 요청을 보냄 (protocol, port 이용)

작동 방식 )

  • client에서 traffic 받아 target group의 instance에 요청을 라우팅
  • target group instance의 상태 모니터링 (정상적인 Target 서버로 트래픽을 전송)
  • listner : incoming traffic을 허용 -> protocol + port number

 

가용 영역 및 로드 밸런서 노드

  • 여러 개의 가용 영역 활성화 : 각 AZ에 하나 이상의 대상 등록
    • 한쪽 가용 영역이 오류 나도 다른 AZ 타겟 연결 가능 - 가용성
  • 교차 영역 로드 밸런싱
    • 모든 AZ에 등록된 대상으로 트래픽 분산
    • Application load balancer에서는 항상 활성화 상태
    • Network load balancer에서는 기본적으로 비활성화 상태

교차 영역 로드 밸런식 활성화

부하가 균등하게 분산된다. 성능 증가

교차 영역 로드 밸런싱 비활성화

부하가 균등하지 못함. 성능 저하.

 

라우팅 요청

client -> DNS server -> domain 이름 해석 -> LB(Load Balancer)에 요청을 보냄 (static IP를 LB에 전달)

client의 요청을 받은 LB는 상태가 양호한 대상을 선택 -> private IP를 사용하여 요청 전송

 

로드 밸런서 체계

  • 내부 로드 밸런서 vs 인터넷 경계 로드 밸런서 (다른 서브넷 이동 가능)
    • private IP를 사용하여 요청을 라우팅
    • public IP가 없는 target instance도 요청을 수신할 수 있음

내부 로드 밸런서 : private IP, VPC 내부만 접속

인터넷 경계 로드 밸런서 : public IP, private IP, VPC내부 및 internet을 통해 client의 요청을 라우팅

728x90
반응형