일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- hacking case
- AWS EKS Udemy
- 모의해킹
- AWS EKS
- 보안기사
- AWS Opensearch
- 실습
- k8s
- artifacts
- AWS Elasticsearch
- 해킹
- kubernetes
- 보안
- The Sleuth Kit
- iam
- 정보보안기사
- Autopsy
- AWS 쿠버네티스
- ISMS-P 인증심사원
- AWS
- forensic
- CFReDS
- 포렌식
- 정보보안
- ISMS
- 정보보안기사 실기
- TSK
- 쿠버네티스
- isms-p
- SMS-P 인증 기준 안내서 요약
- Today
- Total
Always-Try(정보보안 및 일상)
EKS Starter - 1. eksctl을 이용한 AWS EKS 클러스터 설치 본문
https://www.udemy.com/course/amazon-eks-starter-kubernetes-on-aws/ 참고
1. EKS 아키텍쳐 오버뷰
먼저 AWS EKS Architecture의 관리 주체는 다음과 같이 나눌 수 있다.
Master Node와 Etcd의 관리(ex. 오토스케일링)는 AWS에서 하고 사용자는 워커노드에 대해서만 관리하면 된다.
2. AWS EKS 요금
생성한 각 Amazon EKS 클러스터에 대해 시간당 0.10 USD를 지불해야 한다. 그리고 EKS 클러스터 이외에 인스턴스, EBS, Load Balance 등등 추가 비용이 나갈 수 있다. (자세한 건 공식 홈페이지 참고 https://aws.amazon.com/ko/eks/pricing/ )
3. IAM 권한
실습을 위해 아래 권한 추가하면 되는데 필자는 개인 테스트 계정에서 진행하니까 그냥 Administrator 계정으로 진행 하겠다. 당연하겠지만 실제 환경에서는 별도의 IAM 계정 및 권한을 부여하는 것이 좋다.
- AmazonEC2FullAccess
- IAMFullAccess
- AmazonVPCFullAccess
- CloudFormation-Admin-policy (CloudFormation all 권한으로 별도 생성)
- EKS-Admin-policy (EKS all 권한으로 별도 생성)
4. 키 페이 생성
앞으로 생성할 인스턴스 접속을 위한 키페어를 생성한다.
5. IAM 사용자 Access 생성
테스트에 사용할 IAM 사용자들 생성하고 액세스키를 생성한다. 참고로 액세스키 생성 시에 확인할 수 있는 Secret Access Key는 분실 시 절대 복구가 불가능하므로 잘 보관하자.
6. Command Line CLI 툴 설치
EKS를 이용하기 위해 아래와 같이 3가지 Commandline cli tools을 설치한다.
필자는 프리티어 우분투 18 버전의 인스턴스를 하나 생성해서 거기에 설치해줬다.
- aws cli (AWS 자체 CLI)
. pip3 install --user awscli (사용자 환경에 따라 바로 설치가 안될수 있음)
. 사용자홈폴더/aws/credentials 에 Access Key Secret Key 세팅
. 이후 ssh 재접속 후 aws --version 명령어로 확인
- eksctl (AWS EKS 운영)
. curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp sudo mv /tmp/eksctl /usr/local/bin
. sudo mv /tmp/eksctl /usr/local/bin
. eksctl version 로 설치 확인
- kubectl(k8s API와 통신하기 위함)
. apt-get install -y apt-transport-https
. curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
. echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/
. sudo apt-get update
. snap install kubectl --classic (이 부분은 강의에 있는 명령어가 실패해서 변경함)
. kubectl version --short --client 로 확인
7. eksctl로 EKS 클러스터 생성하기
eksctl를 참고한다. 그리고 기본적인 정보는 아래와 같으며, Cloudformation으로 생성하기 위해 eks-course.yaml을 생성한다. yaml 파일을 통해 생성되는 기본 정보는 다음과 같다.
- initial cluster
. region: ap-northeast-2
. one nodegroup
. 3 worker nodes, type t3.micro
. ssh access
여기서 매우 강조하는 부분은 eksctl이 자동으로 1개의 VPC를 만들고 2개의 가용 영역에 2개의 서브넷을 만든다는 것이다. yaml에는 VPC 생성이나 서브넷 생성 관련 된 코드가 없는데, 자동으로 만들어지는 것일까? 그렇다고 한다. 참고로 별도로 가용영역과 VPC에 대한 파라미터를 지정하지 않으면 랜덤하게 가용영역과 VPC를 선택한다고 한다. 파라미터 정보는 eksctl.io/usage/cpv-networking/을 참고해라. 일단 한번 진행해보자. (-> 결과. 3개의 가용영역에 각각 2개의 서브넷이 생성된다. 총 6개)
. time eksctl create cluster -f eksctl/eks-course.yaml (명령어 입력 시 IAM 권한이 잘못되었다고 하여 일단 aws configure 명령어로 다시 설정해주고 aws configure list로 확인 후 다시 명령어를 실행하니 성공했다. 필자는 25분 소요 됨. eksctl 앞에 time 명령어를 주면 실행이 완료된 이후에 소요 시간을 측정할 수 있는 것 같다.)
위 명령어를 실행하면 다양한 OUTPUT들이 쉘에 표시된다. 기다리는 동안 한번씩 읽어보자.
그리고 아래 명령어로 생성된 노드에 대한 기본적인 확인이 가능하다.
. kubectl get nodes
생성된 클러스터 관련 더욱 자세한 내용을 보려면 AWS 콘솔에서 EKS, Cloudformation, 인스턴스, VPC, 서브넷 등등의 서비스들을 확인해보면 된다.
여기까지하면 기본 클러스터 생성 실습은 완료된 것이다.
이후에 테스트 겸 Cloudformation 스택 삭제가 잘 되는지 테스트 해봤는데 삭제가 잘 된다.
이후 다시 다시 클러스터 생성용 yaml을 실행시키고 본 실습은 끝낸다.
'AWS' 카테고리의 다른 글
EKS Starter - 3. Helm Package Manager (0) | 2021.09.01 |
---|---|
EKS Starter - 2. eksctl을 이용한 AWS EKS 운영 (0) | 2021.09.01 |
AWS EKS Udemy 강의 소개 (중급자용) (0) | 2021.09.01 |
AWS - Network Firewall vs Security Group vs NACL (0) | 2021.08.31 |
AWS - CloudFormation을 활용한 기본 네트워크 구성 (0) | 2021.07.31 |