실습 개요
기존 방식으로 Kubernetes 애플리케이션을 생성하려면 복잡한 YAML 파일을 작성하고 관리해야 합니다. 이러한 파일에는 대개 표준 문안 코드가 포함됩니다. 따라서 개발자는 이처럼 번거로운 프로세스를 처리하느라 핵심 애플리케이션 개발에 더 많은 시간을 할애하기가 어려워집니다. 그리고 이러한 YAML 파일은 시간이 지남에 따라 갈수록 유지 관리하기도 어려워집니다. YAML은 클러스터 상태를 설명하는 데 사용되지만 논리적 표현식이나 재사용 가능 추상화를 처리할 수 있는 프로그래밍 언어가 아닙니다. 이러한 YAML의 단점을 해결하는 데 사용할 수 있는 다양한 도구가 제작되었습니다.
이 실습에서는 Cloud Development Kit for Kubernetes (cdk8s) 사용 방법을 실습해 봅니다. 현재는 Typescript, Python, Java, Go에서 cdk8s를 사용할 수 있습니다. cdk8s를 사용하면 Kubernetes 애플리케이션 및 재사용 가능 추상화를 정의하여 순수 Kubernetes YAML을 생성할 수 있습니다. 이 실습에서는 AWS Cloud Development Kit(AWS CDK)를 사용하여 Amazon Elastic Kubernetes Service(Amazon EKS) 클러스터를 생성한 다음 cdk8s를 사용하여 애플리케이션(서비스/배포)을 추가합니다.
이 실습에서는 다음 서비스를 사용합니다.
AWS Cloud Development Kit(AWS CDK)
AWS CDK는 오픈 소스 소프트웨어 개발 프레임워크입니다. 익숙한 프로그래밍 언어를 사용하여 클라우드 애플리케이션 리소스를 모델링하고 프로비저닝할 수 있습니다. AWS CDK는 검증된 기본값으로 클라우드 리소스를 사전에 구성하는 상위 수준 구성 요소를 제공하므로, 전문가가 아니어도 클라우드 애플리케이션을 구축할 수 있습니다. AWS CDK에서는 AWS CloudFormation을 사용하여 반복 가능한 방식으로 리소스를 프로비저닝할 수 있습니다.
AWS CDK에 대한 자세한 내용을 보려면 이 URL을 선택하세요.
AWS Cloud9
AWS Cloud9은 브라우저만으로 코드를 작성, 실행 및 디버그할 수 있는 클라우드 기반 통합 개발 환경(IDE)으로서, 코드 편집기, 디버거 및 터미널이 포함되어 있습니다. AWS Cloud9은 JavaScript, Python, PHP 등과 같은 대중적인 프로그래밍 언어를 위한 필수 도구와 함께 사전 패키지로 제공됩니다. 새 프로젝트를 시작하기 위해 파일을 설치하거나 개발 머신을 구성할 필요가 없습니다.
AWS Cloud9에 대한 자세한 내용을 보려면 이 URL을 선택하세요.
AWS CloudFormation
AWS CloudFormation에서는 클라우드 환경에서 AWS 및 서드 파티 애플리케이션 리소스를 모델링하고 프로비저닝할 수 있도록 공용 언어를 제공합니다.
AWS CloudFormation에 대한 자세한 내용을 보려면 이 URL을 선택하세요.
Amazon EKS
Amazon EKS는 AWS 및 온프레미스 데이터 센터에서 Kubernetes를 실행하는 데 사용할 수 있는 관리형 Kubernetes 서비스입니다. 클라우드에서 Amazon EKS는 컨테이너 예약, 애플리케이션 가용성 관리, 클러스터 데이터 저장 및 다른 주요 태스크를 담당하는 Kubernetes 제어 플레인 노드의 가용성과 확장성을 자동으로 관리합니다. Amazon EKS에서는 우수한 성능과 신뢰성, 사용성 및 크기 조정 기능을 제공하는 AWS 인프라를 활용할 수 있습니다. 또한 AWS 네트워킹 및 보안 서비스와 Amazon EKS를 통합할 수도 있습니다. 온프레미스에서 Amazon EKS는 완벽하게 지원되는 일관된 Kubernetes 솔루션을 제공합니다. 다양한 도구가 통합되어 있는 이 솔루션은 AWS Outposts, 가상 머신 또는 베어 메탈 서버로 간편하게 배포할 수 있습니다.
Amazon EKS에 대한 자세한 내용을 보려면 이 URL을 선택하세요.
AWS Identity and Access Management(IAM)
AWS Identity and Access Management(IAM)를 사용하면 AWS 서비스와 리소스에 대한 액세스를 안전하게 관리할 수 있습니다. IAM 사용 시에는 AWS 사용자와 그룹을 생성 및 관리할 수 있으며 권한을 사용하여 AWS 리소스 액세스를 허용 및 거부할 수 있습니다.
AWS IAM에 대한 자세한 내용을 보려면 이 URL을 선택하세요.
Cloud Development Kit for Kubernetes(CDK8s)
cdk8s는 개발자가 잘 알고 있는 프로그래밍 언어와 다양한 객체 기반 API를 사용하여 Kubernetes 애플리케이션 및 재사용 가능 추상화를 정의할 수 있는 오픈 소스 소프트웨어 개발 프레임워크입니다. cdk8s 앱을 표준 Kubernetes 매니페스트로 합성하면 어떤 Kubernetes 클러스터에나 적용할 수 있습니다.
Cloud Development Kit for Kubernetes에 대한 자세한 내용을 보려면 이 URL을 선택하세요.
목표
본 실습을 마치면 다음을 할 수 있습니다.
- AWS CDK를 사용하여 Amazon EKS 클러스터 생성 및 배포
- cdk8s를 사용하여 서비스 및 배포 생성 및 배포
수강 전 권장 사항
이 실습에는 다음 사항이 필요합니다.
- Microsoft Windows, Mac OS X 또는 Linux(Ubuntu, SuSE 또는 Red Hat)가 설치된 컴퓨터 액세스 권한
- Chrome 또는 Firefox 같은 최신 인터넷 브라우저
필수 기술 지식
이 실습을 성공적으로 마치려면 AWS 관리 콘솔의 기본적인 사용 방법과 텍스트 편집기를 사용하여 스크립트를 편집하는 데 익숙해야 합니다. 그리고 Kubernetes에 대해 기본적으로 파악하고 있는 것이 좋습니다.
아이콘 설명
이 실습에서는 가이드의 특정 부분을 자세히 확인할 수 있도록 다양한 아이콘이 사용됩니다. 각 아이콘의 목적은 다음과 같습니다.
- 명령: 실행해야 하는 명령을 지정합니다.
- 예상 출력: 명령 또는 편집된 파일의 출력을 확인합니다.
- 참고: 중요한 힌트, 팁, 지침 또는 조언을 나타냅니다.
- 추가 정보: 자세한 정보를 찾을 수 있는 위치를 나타냅니다.
- 주의: 특별히 참고해야 할 정보에 대한 주의를 환기합니다. 참고 사항을 읽지 않는다고 해서 장비나 데이터가 물리적 피해를 입지는 않지만 특정 단계를 반복해야 할 수도 있습니다.
- 고려 사항: 자신의 환경에 개념을 어떻게 적용할 수 있는지 생각하거나 당면한 주제에 대한 대화를 시작하기 위해 잠깐 멈출 것을 제안합니다.
- 복사/붙여넣기: 경우에 따라 스크립트를 실행하거나 미리 만들어진 파일을 적용할 수 있습니다. 이 아이콘은 상호 작용할 스크립트 또는 파일의 내용을 표시하는 데 사용되는 코드 블록을 나타냅니다.
- 코드 블록의 특정 부분만 복사해야 하는 경우 코드에 번호가 매겨진 TODO 주석이 있습니다.
- 코드 블록의 특정 부분만 복사해야 하는 경우 코드에 번호가 매겨진 TODO 주석이 있습니다.
- 컨텍스트: 항목의 컨텍스트 메뉴를 열라는 지침이 나오는 경우, 이는 마우스 오른쪽 버튼을 클릭(또는 기타 디바이스의 해당 동작)했을 때 표시되는 메뉴를 말합니다.