thumbnail

멋쟁이사자처럼 클라우드 엔지니어링 부트캠프 수강 후기

멋쟁이사자처럼 클라우드 엔지니어링 부트캠프 3기 수강후기

멋쟁이사자처럼 오늘 공부 후기 챌린지 - 클라우드 엔지니어링 편

이런 고민을 하고 있다면, 지금 이 순간에도 멋쟁이사자처럼에서 클라우드 엔지니어링 부트캠프를 수강하며 자신만의 속도로 성장 중인 수강생들을 주목해보세요.


배우고 잊어버리는 건 누구나 겪는 일이에요. 하지만 멋쟁이사자처럼 부트캠프는 단순히 배우는 것에 그치지 않고, 배운 내용을 내 것으로 만드는 방법까지 고민하고 있어요. 그렇다면, 배운 것을 가장 효과적으로 습득하는 방법은 무엇일까요? 바로 기록하고 정리하는 것이죠. 배운 내용을 정리하고 기록하면, 기억은 오래 남고 실전에서도 활용할 수 있으니까요!

멋쟁이사자처럼 부트캠프는 수강생들이 배운 내용을 정리하고 공유할 수 있도록 TIL (Today I Learned) 블로그 챌린지를 진행하고 있어요. 그래서 오늘, 강사님과 멘토님에게 배운 내용을 체계적으로 기록하며 성장하고 있는 수강생의 이야기를 가져왔어요. 작고 사소해 보일지라도 배운 내용을 정리하고, 기록하면서 성장한 이들의 소중한 경험을 지금 확인해 보세요.


EKS 공식문서

  • AWS가 Kubernetes Control Plane을 관리하는 완전관리형 서비스.

  • 사용자는 Worker Node(Data Plane)애플리케이션 관리에 집중.

  • 고가용성을 위한 멀티-AZ Control Plane 배포, 장애 복구 및 자동 크기 조정 지원.

  • EKS는 기존 Kubernetes와 동일한 방식으로 애플리케이션을 배포하고 관리.

    구성 요소

    설명

    Control Plane

    AWS가 관리. Kubernetes API 서버, etcd, 컨트롤러 매니저, 스케줄러 포함. 사용자 접근 불가

    Data Plane

    사용자가 관리. EC2 기반 또는 Fargate 기반 Worker Node 구성 가능

    Nodegroup

    동일한 설정을 가진 Worker Node 집합. EC2 인스턴스 기반 또는 Fargate 기반으로 구성 가능

  • EKS는 기본적으로 AWS VPC CNI 플러그인을 사용하여 pod에 VPC 서브넷의 IP를 직접 할당.

  • 장점: pod가 VPC 수준에서 통신 가능 (보안 그룹, 라우팅 활용 가능)

  • 단점: 서브넷의 IP 개수 제한 → pod 수 제한

  • 해결 방안

    • VPC CNI 설정 변경 (prefix delegation 등)

    • 다른 CNI (예: Calico)와 혼합 사용

  • L4 수준에서 Kubernetes Service 리소스를 외부와 연결

  • 높은 성능, 정적 IP 제공, 낮은 지연 시간

  • 서비스 어노테이션으로 NLB 설정 가능

  • EKS로 NLB 라우팅 공식문서

  • Ingress, Service 기반으로 ALB (Application Load Balancer) 및 NLB 자동 생성

  • Ingress 리소스를 통해 Path-based, Host-based 라우팅 가능

  • Helm 등을 통해 설치 후 IAM 역할 및 정책 필요

스토리지

설명

EBS CSI

블록 스토리지. Pod에만 마운트 가능. 상태 저장 워크로드에 적합

EFS CSI

파일 스토리지. 여러 Pod에서 동시에 마운트 가능. 공유 데이터에 적합

FSx CSI

고성능 파일 시스템 옵션 (Lustre, Windows File Server 등)

  • PVC (PersistentVolumeClaim)로 Pod에 동적 스토리지 바인딩 지원

  • Fargate 사용 시 관리할 EC2 인스턴스가 없으며, pod 단위로 요금 발생. 짧은 수명 pod에 유용.

  • Auto Scaling

    • Cluster Autoscaler: node 수 조정

    • Horizontal Pod Autoscaler: pod 수 조정

  • IRSA (IAM Roles for Service Accounts)

    • Pod에 AWS 리소스 접근 권한 부여 가능 (보안성 향상)

클라우드 인프라를 코드(JSON/YAML)로 정의하고 배포할 수 있는 IaC(Infrastructure as Code) 서비스.

  • IaC 기반으로 인프라 자동화

  • 템플릿 재사용을 통한 생산성 및 일관성 향상

  • 리소스 생성/삭제 자동 처리

  • 스택 삭제 시 의존된 리소스 자동 정리

  • 템플릿의 동적 입력값 정의

  • 사용자 입력 또는 내부 참조 가능

  • 정적

  • 동적

  • 정적 값(지역별 AMI 등)을 정의할 때 사용

  • 스택 실행 결과를 다른 템플릿과 공유할 수 있게 내보냄

Plaintext
Outputs:
  SSHSecurityGroup:
    Description: SSH 전용 보안그룹
    Value: !Ref CompanySSHSecurityGroup
    Export:
      Name: SSHSecurityGroup
Plaintext
Resources:
  MyInstance:
    Type: AWS::EC2::Instance
    Properties:
      SecurityGroups:
        - !ImportValue SSHSecurityGroup
  • 특정 조건에 따라 리소스 생성 여부 결정

Plaintext
Parameters:
  Environment:
    Type: String
    Default: Production

Conditions:
  IsDev: !Equals [!Ref Environment, Development]

Resources:
  DevOnlyResource:
    Condition: IsDev
    Type: AWS::S3::Bucket
  • 템플릿 설명 또는 리소스 관련 부가 정보 정의

Plaintext
Metadata:
  Instances:
    Description: EC2 인스턴스 정보

함수

설명

Ref

리소스 이름 또는 매개변수 값 참조

Fn::GetAtt

리소스 속성(예: ARN, IP 등) 가져오기

Fn::FindInMap

Mapping 값 참조

Fn::ImportValue

다른 스택에서 Export한 값 가져오기

Fn::Join

문자열 연결 (예: !Join [":", [val1, val2]])

Fn::Sub

문자열 템플릿 치환 (${Variable} 형식) 사용 가능

  1. EKS를 CloudFormation을 통해 생성하는데 강사님과 같은 yaml 파일을 작성했음에도 Version 오류가 났다.

    이 AWS::EKS::Cluster 리소스가 CREATE_FAILED 상태입니다Properties validation failed for resource ControlPlane with message: [#/Version: string [] does not match pattern 1.\d\d]

    해당 에러메세지는 버전이 맞지 않아서 발생하는 문제라고 한다.강사님은 따로 버전 수정을 하지 않으셨던 거 같은데...

    여하튼? 내가 해결했던 방법은 버전을 추가 해줬다.yaml 파일에 공백이 있어도 정상실행 되지 않을 수도 있다고 한다..

  • 해결방법

    • 스택 생성 시에 내용을 보면 EKSClusterVersion이 있는데 이 부분과 YAML 파일의 버전이 동일해야 한다.

    • yaml 파일에는 버전이 기재 되어있지 않았다.

홈 : 멋사 부트캠프

멋쟁이사자처럼의 13년 교육 노하우로 IT 취업의 꿈을 현실로!