[KT Aivle AI] 15주차 가상화 클라우드

hyowon·2024년 5월 28일
0

KtAivle

목록 보기
35/39

개요

  1. 가상화 및 클라우드 개요
  2. AWS 기본 서비스 (EC2, VPC, EBS, S3)
  3. AWS 고가용성 구현 (Region, AZ, ELB, ASG)
  4. AWS 모니터링 개요 (CloudWatch)
  5. AWS 주요 리소스 모니터링 & 비용 모니터링
  6. 쿠버네티스 개요 및 주요 아키텍처
  7. 쿠버네티스 클러스터 배포
  8. 쿠버네티스 컨테이너 배포, 통신, 볼륨 관리
  9. 쿠버네티스 모니터링 (Dashboard, Prometheus & Grafana)
  10. AWS 기반 쿠버네티스 (EKS)

1. 가상화 및 클라우드 개요

1) 가상화

기존 환경의 문제점들

  • 극도의 복잡성, 빈약한 인프라에 의존

가상화 기술을 통해 해결

  • 모든 IT 자산의 가상화
  • 가상화 플랫폼을 이용하고 동적이고 유연한 업무 인프라를 구축
  • 데이터센터의 모든 리소스를 가상화

가상화 유형

  • 서버 가상화
  • 네트워크 가상화
  • 스토리지 가상화
  • 데스크톱 가상화

가상화 도입 효과

  • 서비스를 이용한 물리적 서버의 대수를 감소
  • 전체적인 상면/전력/관리 비용을 절감
  • 탄소배출 절감

가상화 정의

  • 가상화는 운영 체제에서 물리적 하드웨어를 분리하여 IT 담당자가 직면한 많은 문제에 대한 해결책을 제공

2) 하이퍼바이저

  • 하이퍼바이저는 컴퓨터 시스템에서 다수의 운영 체제를 동시에 실행할 수 있게 해주는 논리적 플랫폼입니다.
  • 하이퍼바이저는 물리적 하드웨어와 가상 머신(VM) 사이에 위치하여 가상 머신들이 물리적 자원을 효율적으로 사용할 수 있도록 합니다.
  • 하이퍼바이저는 두 가지 주요 유형으로 나뉩니다

1. Type 1 하이퍼바이저(Native 또는 Bare-metal 하이퍼바이저)

  • 설명: Type 1 하이퍼바이저는 물리적 하드웨어 위에서 직접 실행되는 하이퍼바이저입니다. 운영 체제 없이 하드웨어에서 직접 실행되기 때문에 "Bare-metal" 하이퍼바이저라고도 불립니다.
  • 특징:
    • 성능이 뛰어나며, 리소스 오버헤드가 적습니다.
    • 높은 안정성과 보안성을 제공합니다.
    • 주로 서버 가상화에 사용됩니다.
  • : VMware ESXi, Microsoft Hyper-V, Xen

2. Type 2 하이퍼바이저 (Hosted 하이퍼바이저)

  • 설명: Type 2 하이퍼바이저는 기존의 운영 체제 위에서 실행되는 하이퍼바이저입니다. 즉, 호스트 운영 체제 위에서 동작하는 애플리케이션의 일종입니다.
  • 특징:
    • 설치 및 관리가 비교적 쉽습니다.
    • 데스크톱 가상화에 주로 사용됩니다.
    • 성능이 Type 1 하이퍼바이저보다 낮을 수 있습니다.
  • : VMware Workstation, Oracle VirtualBox, Parallels Desktop

비교

  • 성능: Type 1 하이퍼바이저가 일반적으로 더 높은 성능을 제공합니다.
  • 설치 및 관리: Type 2 하이퍼바이저는 설치 및 관리가 더 간단하며, 사용자가 친숙한 환경에서 사용할 수 있습니다.
  • 용도: Type 1 하이퍼바이저는 주로 데이터 센터 및 서버 가상화에 사용되며, Type 2 하이퍼바이저는 개인 컴퓨터 및 개발 환경에서 사용됩니다.

하이퍼바이저는 가상화 기술의 핵심 요소로, 다양한 운영 체제를 단일 하드웨어에서 동시에 실행하여 자원 활용의 효율성을 극대화하고, 테스트 및 개발 환경을 유연하게 관리할 수 있게 해줍니다.

3) 클라우드

  • PC 데이터를 PC에 보관하는 것이 아니라 인터넷을 통해 중앙 PC 또는 서버에 저장하는 공간
  • 클라우드 컴퓨팅 : 인터넷을 통해 IT 리소스를 원할 때 언제든지 사용하고, 사용한 만큼 비용을 지불하는 서비스

클라우드 유형

  • 퍼블릭 클라우드
    • 클라우드 컴퓨팅 서비스를 제공해주는 업체에게 인프라에 필요한 자원들을 대여하여 사용하는 방식
    • CSP 예 : AWS, Azure, KT 클라우드, 네이버 클라우드
  • 프라이빗 클라우드
    • 기업이 직접 클라우드 환경을 구축, 이를 기업내부에서 활용, 계열사에 공개

2. AWS 기본 서비스(EC2, VPC, EBS ,S3)

1-1) EC2 서비스

  • Amazon EC2: 가상 서버 서비스
    • Virtual Machine
    • 재구성이 가능한 컴퓨팅 리소스
    • 쉽게 확장/축소되는 컴퓨팅 용량
    • ‘고객 업무’ 영역에 따른 다양한 인스턴스 타입 제공
    • 사용한 만큼만 과금 (pay-as-you-go) - 초

1-2) EC2 Security Group

보안그룹 규칙

  • Name: 보안그룹의 이름
  • Description: 보안그룹에 대한 설명
  • Protocol: 허용할 네트워크 프로토콜 (예: TCP, UDP, ICMP 등)
  • Port range: 허용할 포트 범위 (예: 80, 443 등)
  • IP address, IP range, Security Group name: 허용할 IP 주소, IP 범위 또는 다른 보안그룹 이름

특징

  • In/Out bound 지정 가능: 인바운드(수신) 및 아웃바운드(발신) 트래픽 규칙을 설정할 수 있습니다.
  • 모든 인터넷 프로토콜 지원: 모든 인터넷 프로토콜(TCP, UDP, ICMP 등)을 지원합니다.
  • 인스턴스 동작 중에도 규칙 변경 가능: 인스턴스가 실행 중일 때도 보안그룹 규칙을 변경할 수 있습니다.

요약

  • EC2 보안그룹은 네트워크 트래픽을 제어하기 위한 가상 방화벽으로, 보안그룹 규칙을 통해 프로토콜, 포트 범위, IP 주소 등을 설정하여 인바운드 및 아웃바운드 트래픽을 관리합니다.
  • 모든 인터넷 프로토콜을 지원하며, 인스턴스가 동작 중일 때도 규칙을 변경할 수 있어 유연한 보안 관리를 제공합니다.

1-3) 계층적인 보안그룹

  • IP Range 대신 어느 SG로부터의 트래픽을 허용할지 지정가능
  • 계층적인 네트워크 구조 생성 가능

1-4) EC2 접속 암호

1. 표준 SSH RSA Key Pair

  • Public Key: 공개 키는 누구와도 공유할 수 있으며, 주로 서버에 저장됩니다.
  • Private Key: 비밀 키는 사용자만이 가지고 있으며, AWS에 저장되지 않습니다.

2. EC2 Key Pairs

Linux

  • 최초 로그인 시: SSH key pair를 사용하여 최초 로그인 시에 SSH key pair 를 생성합니다.

Windows

  • 관리자 암호 불러오기: Windows 인스턴스에서는 관리자 암호를 불러오기에 앞서 EC2 key pair 가 필요합니다.

3. AWS가 제공하는 초기 OS 접속 방법

  • 높은 보안성 제공: 초기 접속 시 SSH key pair를 사용함으로써 높은 보안성을 제공합니다.
  • Personalized: 사용자마다 고유한 SSH key pair를 사용하여 개인화된 접속 방법을 제공합니다.

요약

  • AWS에서 제공하는 표준 SSH RSA key pair는 공개 키와 비밀 키로 구성됩니다.
  • 비밀 키는 AWS에 저장되지 않으며, 사용자가 안전하게 보관해야 합니다.
  • Linux 인스턴스에서는 SSH key pair로 최초 로그인 시 사용되고, Windows 인스턴스에서는 관리자 암호를 불러오기 위해 사용됩니다.
  • 이 방법은 높은 보안성을 제공하며, 각 사용자가 고유한 key pair를 사용함으로써 개인화된 접속 방법을 지원합니다.

1-5) VPC 서비스

  • Virtual Private Cloud
  • 사용자가 정의한 가상의 네트워크 환경
  • 통신을 위한 기본 네트워크
    • 보안 강화 목적, 부족한 IP 자원의 효율적 관리 목적으로 사용

VPC 생성 과정

    1. Region 및 IP Range 결정: 사용할 리전과 IP 주소 범위를 선택합니다.
    1. 가용영역에 Subnet 생성: 각 가용영역에 서브넷을 생성하여 네트워크를 분할합니다.
    1. Routing 설정: 라우팅 테이블을 설정하여 트래픽의 경로를 정의합니다.
    1. Traffic 통제: 보안 그룹과 네트워크 ACL을 사용하여 인바운드 및 아웃바운드 트래픽을 제어합니다.
  • 이 과정을 통해 AWS에서 안전하고 효율적인 네트워크 환경을 구축할 수 있습니다.

1. VPC 생성 : IP Range 결정

IP Address Group

  • VPC를 구성하는 가장 중요한 요소: VPC를 설계할 때 가장 먼저 고려해야 할 요소는 IP 주소 그룹입니다. 이는 VPC 내에서 사용할 IP 주소 범위를 정의합니다.
  • 집을 고를 때 가장 중요한 요소 = 평수: 집을 고를 때 평수가 중요하듯이, VPC를 구성할 때 IP 주소 범위는 매우 중요합니다.
  • VPC 구성 시 가장 먼저 고려하는 것 = IP 범위: VPC를 생성할 때, 먼저 IP 주소 범위를 결정하는 것이 필수적입니다.

CIDR (Classless Inter-Domain Routing)

  • Classless Inter-Domain Routing: 클래스 없는 도메인 간 IP 할당 기법입니다. 전통적인 IP 주소 클래스(A, B, C 등)를 사용하지 않고, 더 유연하게 IP 주소를 할당할 수 있게 합니다.
  • 클래스 없는 도메인 간 IP 할당 기법: 특정 범위의 IP 주소를 할당하고 라우팅하는 데 사용됩니다.
  • Class란 무엇인가?:
    • 전통적인 IP 주소 클래스 시스템을 의미하며, 각 클래스는 특정 범위의 IP 주소와 서브넷 마스크를 가지고 있습니다.
    • CIDR은 이러한 클래스 시스템을 사용하지 않고, 필요한 만큼의 IP 주소를 유연하게 할당할 수 있게 해줍니다.

요약

  • VPC를 구성할 때 가장 중요한 요소 중 하나는 IP 주소 범위(CIDR)를 결정하는 것입니다.
  • 이는 VPC 내에서 사용할 IP 주소의 그룹을 정의합니다. CIDR은 전통적인 클래스 기반 IP 주소 할당 방식을 사용하지 않고, 필요한 만큼의 IP 주소를 할당하여 더 유연한 네트워크 구성을 가능하게 합니다.
  • VPC를 설계할 때, 적절한 IP 주소 범위를 선택하는 것이 중요한 첫 단계입니다.

2-1) Subnet 정의 및 역할

  • Subnet: VPC의 IP 대역을 적절한 단위로 분할하여 사용.
    • 예: 172.16.0.0/16
    • 각 Subnet도 VPC처럼 CIDR을 이용해 IP 범위를 지정.
    • 각 Subnet의 대역은 VPC 대역 내에 존재해야 하고 중복 불가.
  • 주요 목적: 네트워크 레벨에서 트래픽을 격리하고 경로를 제어하여 원하는 트래픽만 수신 가능하게 함.
  • Subnetting 주요 목적: 전통적으로는 Broadcasting 영역 분리, 그러나 AWS VPC는 Broadcast/Multicast를 지원하지 않음.

2-2) Subnet 생성 시 고려 사항

  • CIDR 변경 불가: Subnet CIDR은 생성 후 변경 불가.
    • 너무 작게 설정하면 서비스 확장 시 문제가 될 수 있음.
    • 확장성을 고려하여 넉넉하게 설정 권장.
  • 예약된 IP: Subnet CIDR 영역 내 일부 IP는 예약됨.
    • 첫 4개 IP와 마지막 IP는 사용 불가.
    • 예: 10.0.0.0/24
      • 10.0.0.0: 네트워크 주소
      • 10.0.0.1: VPC 라우터
      • 10.0.0.2: DNS
      • 10.0.0.3: AWS 예약
      • 10.0.0.255: 브로드캐스트 주소 (향후 사용 예약)

3-1) VPC: Routing Table 특징

  • Main Routing Table: VPC 생성 시 자동으로 생성.
    • 기본적으로 VPC 내 모든 통신이 허락된 경로가 설정됨.
    • Subnet 생성 시 Main Routing Table이 자동 설정되어 내부 통신 가능.
  • Subnet과 Routing Table 연결: Subnet은 하나의 Routing Table과 연결 가능.
    • 초기 생성 시 Main Routing Table과 연결됨.
    • Custom Routing Table 연결 시 Subnet과 Routing Table 연동 설정 필요.
  • Main Routing Table: 삭제 불가.

3-2) Custom Route Table

  • 기본 통신: VPC 내 모든 Subnet은 Local Router를 통해 상호 통신 가능.
  • 추가적인 Route Table 등록 필요:
    • 인터넷, 온프레미스 VPN 통신, DirectConnect, VPC Peering 등의 경우.

4. AWS 모니터링 (CloudWatch)

1. 모니터링 개요

  • 모니터링은 데이터를 수집, 분석 및 사용하는 행위로, IT 리소스 및 시스템에 대한 다양한 질문에 답을 제공하고 의사 결정을 지원하는 목적

모니터링의 목적

  • 사이트 방문자 수 및 시간 경과에 따른 추적
  • 웹 사이트 성능 및 가용성 문제 감지
  • Amazon EC2 인스턴스의 용량 부족 여부 판단
  • 웹 사이트의 정상 동작 여부 확인
  • 리소스 과다 사용, 애플리케이션 결함, 리소스 구성 오류 또는 보안 이벤트 감시

2. 메트릭(Metric)

  • 메트릭은 모니터링을 통해 수집된 데이터로, 리소스가 생성하는 다양한 형태의 데이터를 포함합니다.

메트릭 예시

  • EC2 인스턴스에서 수집되는 평균 CPU 사용률, 네트워크 사용률, 디스크 성능, 메모리 사용률
  • 서버 또는 IT 시스템 로그

메트릭의 다양성

AWS의 리소스마다 다른 유형의 메트릭이 생성됩니다.

  • Amazon S3 버킷: 객체 관련 메트릭 (버킷 크기, 객체 수 등), 요청 관련 메트릭 (객체 읽기, 쓰기 등)
  • Amazon RDS: 데이터베이스 연결, 인스턴스 CPU 사용률, 디스크 공간 소비 등

모니터링의 이점 및 중요성

  1. 사전 대응 가능
    • 문제 발생 징후를 메트릭을 통해 확인
    • 문제 발생 시 빠른 인식 및 해결
  2. 성능 및 안정성 개선
    • 병목 현상 및 비효율적 아키텍처 확인 가능
  3. 보안 위협 인식
    • 기준선을 설정하여 비정상적 활동 감지
  4. 데이터 중심의 의사 결정 지원
    • IT 운영 상태를 주시하고 비즈니스 결정 지원
  5. 비용 효율적 솔루션 구축
    • 사용량이 부족한 리소스를 조정하여 비용 최적화

3. 모니터링 솔루션

  • 효과적인 모니터링을 위해 중앙 집중 식 데이터 수집 및 분석이 필요하며, 데이터 가시성 확보가 중요

모니터링 솔루션 예

  • AWS CloudWatch
  • Prometheus
  • Grafana

4. AWS CloudWatch

  • AWS 리소스 및 애플리케이션을 모니터링하고 관측하는 도구로, 다양한 기능을 제공합니다.

1. CloudWatch 기능

  • 이상 동작 감지 및 경보 설정
  • 로그 및 메트릭 시각화
  • 자동화된 작업 수행
  • 애플리케이션 유지 및 인사이트 제공

2. CloudWatch 구조

  • Dashboard: 통합된 그래프로 메트릭 정보 시각화
  • 메트릭: 리소스 성능 관련 메트릭 확인
  • Insight: 수집된 데이터 기반 가시성 확보
  • Log: 로그 수집, 저장, 탐색, 분석
  • Alarm: 특정 기준 충족 시 이벤트 발생 및 알림
  • Event: AWS 리소스 변경사항에 대한 시스템 이벤트 기록
  • Service LensSynthetics

3. CloudWatch 개요

  • CloudWatch는 메트릭 및 로그 리포지토리를 제공하며, AWS 서비스와 온프레미스 애플리케이션 리소스를 모니터링합니다. 수집되는 데이터는 사전 정의된 메트릭과 사용자 지정 메트릭을 포함합니다.

6. 쿠버네티스 개요 및 주요 아키텍처

1. 컨테이너

  • OS 가상화 기술

  • 프로세스 격리

  • 리눅스 커널 공유

  • GuestOS의 유무

2. Docker 개요

  • Docker 는 컨테이너 기반의 오픈 소스 가상화 플랫폼으로, 컨테이너를 실행하고 관리하는 도구입니다. Docker 는 도커허브를 통해 컨테이너 자료들을 관리합니다.

2-1) Dockerfile

  • 정의: 컨테이너 이미지를 생성하기 위한 레시피 파일
  • 구성: 이미지 생성 과정을 문법에 따라 작성
  • 주요 명령어:
    • FROM: 베이스 이미지 설정
    • WORKDIR: 작업 디렉토리 설정
    • RUN: 명령어 실행
    • CMD: 컨테이너 시작 시 실행할 명령어

예시 Dockerfile

FROM ubuntu:18.04
RUN apt-get update && apt-get install -y vim apache2
COPY index.html /var/www/html/
CMD ["/usr/sbin/apachectl", "-D", "FOREGROUND"]

2-2) Docker Image

  • 정의: 서비스 운영에 필요한 프로그램, 소스코드, 라이브러리 등을 묶은 형태
  • 생성: Dockerfile을 사용하여 커스텀 빌드
  • 사용: 도커 이미지를 사용하여 다수의 컨테이너 실행

Docker Image Naming Rule

  • 빌드 명령: docker build -t <Namespace>/<ImageName>:<tag>
  • 예시:
    • docker.io/library/nginx:latest
    • nginx:latest
    • nginx

Docker Private Image

  • 정의: Private 이미지 저장소 구축 및 이미지 관리
  • 예시:
    • k8sedu.com:3000/mywebserver:latest
    • k8sedu.com:3001/mydbserver:v1

2-3) Docker HUB

  • 정의: 수많은 컨테이너 이미지를 서버에 저장하고 관리하는 플랫폼
  • 특징: 공개 이미지를 무료로 관리
  • URL: Docker HUB

3. 컨테이너 오케스트레이션

  • 정의: 다수의 컨테이너를 여러 시스템에서 배포, 복제, 장애복구 등을 총괄적으로 관리하는 행위
  • 일반적 기능:
    • 스케줄링
    • 자동확장 및 축소
    • 장애복구
    • 로깅 및 모니터링
    • 검색 및 통신
    • 업데이트 및 롤백

3-1) 컨테이너 오케스트레이터

  • 정의: 컨테이너 오케스트레이션을 수행하는 도구
  • 종류:
    • Kubernetes
    • Docker Swarm
    • AWS ECS
    • Azure Container Instance
    • Azure Service Fabric
    • Marathon
    • Nomad

3-2)컨테이너 오케스트레이터의 배포 위치

  • 위치:
    • 베어 메탈
    • 가상머신
    • 온프레미스
    • 클라우드

4. Kubernetes

  • 정의: 컨테이너형 애플리케이션의 배포, 확장, 관리를 자동화하는 오픈 소스 시스템
  • 이유:
    • 높은 확장성, 원활한 이동성
    • 다양한 환경에 구축 가능 (퍼블릭/프라이빗/하이브리드/멀티 클라우드, 로컬 또는 원격 가상 머신, 베어메탈 등)
    • 오픈 소스 도구의 장점
    • 플러그가 가능한 모듈 형식

요약

  • Docker는 컨테이너 기반의 오픈 소스 가상화 플랫폼으로, Dockerfile을 통해 이미지를 생성하고, Docker Image를 사용하여 컨테이너를 실행합니다.
  • Docker HUB를 통해 이미지를 관리할 수 있으며, 컨테이너 오케스트레이션 도구를 통해 다수의 컨테이너를 효율적으로 관리할 수 있습니다.
  • Kubernetes는 이러한 오케스트레이션 도구 중 하나로 높은 확장성과 다양한 환경 지원이 특징입니다.
profile
안녕하세요. 꾸준히 기록하는 hyowon입니다.

0개의 댓글