들어가며:
brew & envsubst
AWS CLI
eksctl & kubectl
Amazon Corretto
Docker Desktop
Node.js
들어가며:
설치 환경
하드웨어: intel Mac
운영체제: Monterey 12.0.1
클라우드 네이티브를 위한 쿠버네티스 실전 프로젝트를 진행하기 위한 실습환경 구성입니다.
Amazon EKS 실습 환경을 구성하실 때도 동일한 방법이니 참고하셔서 구성하시면 될 것 같습니다.
이 포스팅은 클라우드 네이티브를 위한 쿠버네티스 실전 프로젝트를 참고하였습니다.
작업 디렉토리는 ~/k8sbook/work 디렉토리를
바이너리 파일 저장 디렉토리는 ~/k8sbook/bin 을 사용하겠습니다.
# 작업 디렉토리 생성
$ mkdir -p ~/k8sbook/work && mkdir -p ~/k8sbook/bin
Homebrew & envsubst
맥에서 사용자 표준이 되버린 패키지 관리자 brew 가 이미 설치되어 있다면 envsubst 만 설치하시면 됩니다.
# brew 설치
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# envsubst 설치
brew install gettext
brew link gettext --force
AWS CLI (Command Line Interface)
AWS CLI란?
- 커맨드 에서 아마존 웹 서비스의 API를 직접 호출할 수 있게 도와주는 명령어
- 파이썬으로 만들어진 커맨드 라인 명령어
- 깃허브에서 개발중이며,최신 버전은 릴리스 페이지에서 확인 가능
brew를 사용해서 설치할 수 있으나 버전을 지정해서 설치하기 번거롭기에 아래와 같이 안내합니다.
v2 를 기준으로 설치하겠습니다.
AWS 공식 홈페이지에서 참고하여 설치하셔도 되지만
pkg 파일 링크로 다운로드하면 됩니다.
pkg 다운로드 후 파일을 더블클릭 후 진행하면 됩니다.
특별한 설정없이 default로 설치를 진행하면 됩니다.
# awscli 설치 확인
$ aws --version
설치가 완료되었다면 터미널에서 확인하실 수 있습니다.
AWS CLI 구성 및 자격 증명 파일 설정
aws IAM 이 없다면 이전 포스팅을 참고하여 IAM 계정을 만들고
있다면 계정 .scv 파일을 준비합니다.
$ aws configure
AWS Access Key ID [None]: <사용자 액세스 키 ID>
AWS Secret Access Key [None]: <사용자 액세스 키>
Default region name [None]: ap-northeast-2
Default output format [None]:
서울리전에서 실습한다면 ap-northeast-2 로 설정합니다. (ap-northeast-1 은 도쿄리전 입니다.)
이미 한번 설정한 이력이 있기 때문에 해당 키값으로 default 값이 변경되어있는 것을 확인할 수 있습니다.
마지막 아웃풋 포맷은 default 값이 json 이므로 지정해주지 않아도 됩니다.
다른 계정으로 변경하고 싶다면 다른 계정을 키값을 입력해주면 됩니다.
eksctl & kubectl
eksctl 이란?
EKS 클러스터를 쉽게 생성 및 관리하는 CLI 툴입니다.
Go 언어로 쓰여있으며 CloudFormation 형태로 배포됩니다.
kubectl 이란?
kubectl은 쿠버네티스 클러스터를 제어하기 위한 CLI 툴입니다.
구성을 위해 config 파일을 $HOME/.kube 에서 찾습니다.
eksctl 다운로드
eksctl 깃허브 페이지에서 바이너리 파일을 다운로드 합니다.
인텔맥 기준으로 설명입니다. eksctl-Darwin_amd64.tar.gz 을 다운로드 합니다.
만약 M1 맥을 사용한다면 eksctl-Darwin-arm64.tar.gz 으로 다운로드하면 됩니다.
다운로드는 0.61.0 정식 릴리즈 버전으로 진행하였습니다.
다운로드 한 뒤 ~/k8sbook/bin 디렉토리에 다운로드 파일을 옮겨줍니다.
kubectl 다운로드
aws 배포 사이트에서 확인 후 v1.19.6 으로 다운로드 하겠습니다.
쿠버네티스 클러스터 제어 플레인과 버전을 일치 시켜야됩니다.
1단계 정도는 마이너 버전을 사용해도 문제 없는 경우가 있으니 자세한 버전 정책 부분은 공식 문서를 참고하세요.
# kubectl 다운로드
$ cd ~/k8sbook/bin/
$ curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.19.6/2021-01-05/bin/darwin/amd64/kubectl
$ chmod +x ~/k8sbook/bin/kubectl
실습 디렉토리로 이동 후 다운로드를 진행해줍니다.
다운로드가 완료된다면 다운로드한 파일에 실행 권한을 추가해줍니다.
명령줄 도구 저장 디렉토리의 PATH 환경변수 설정 및 동작 확인
본인이 사용하는 쉘에 맞게 환경변수를 추가해줍니다.
# 환경 변수 설정 (zsh)
$ echo 'export PATH=$PATH:$HOME/k8sbook/bin' >> ~/.zprofile
# 환경 변수 설정 (bash)
$ echo 'export PATH=$PATH:$HOME/k8sbook/bin' >> ~/.bash_profile
환경변수 설정을 마쳤다면 확인해봅니다.
$ eksctl version
$ kubectl version --client
정상 설치된 것을 확인할 수 있습니다.
Amazon Corretto
Amazon Corretto 란?
무료로 사용할 수 있는 Open Java Development Kit(OpenJDK)의 프로덕션용 멀티플랫폼 배포판입니다.
Corretto는 성능 향상 및 보안 픽스를 포함하는 장기적인 지원을 제공합니다
amazon corretto 공식 사이트에서 macOS 용 Corretto 버전11 pkg 형식을 다운로드 합니다.
위에 링크 다운로드가 완료되면 더블클릭하여 설치를 진행합니다.
# 환경변수 설정(zsh)
$ echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 11)' >> ~/.zprofile
# 환경변수 설정(bash)
$ echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 11)' >> ~/.bash_profile
설치작업이 끝났다면 자신의 터미널에 맞게 환경 변수를 설정해줍니다.
$ javac -version
$ java -version
설치가 완료됐다면 동작을 확인합니다.
도커 데스크톱
도커란?
이전 포스팅을 참고해주세요.
도커 공식 홈페이지에서 자신에 운영체제에 맞는 다운로드를 합니다.
인텔 맥으로 실습중이니 인텔맥 도커 3.5 버전을 다운로드 하겠습니다.
도커는 최대한 최신버전으로 다운 받는 것을 권장드립니다.
다운로드 완료 후 클릭시 나오는 화면에서 애플리케이션 폴더로 이동시켜주세요.
접근 허가 권한을 부여한 뒤 도커허브에 로그인(아이디가 없다면 회원가입 후)을 시키면 됩니다.
정상적으로 진행됐다면 위와 같이 도커 화면이 뜹니다.
컴퓨터 전원을 껐다 키면 도커는 종료되도록 default 값이 설정되어 있으니 변경을 원한다면 톱니바퀴(preferences)에서 수정하시기 바랍니다.
$ docker version
도커가 정상 설치된 것을 확인할 수 있습니다.
참고로 도커 데스크톱을 설치하면 앞에서 다운로드했던 kubectl 도 함께 설치됩니다.
실습에서는 앞서 설치한 kubectl 를 사용할 예정임으로 우선순위를 설정해주도록 하겠습니다.
$ cd /etc
$ sudo vi paths
# 맨 윗줄에 해당 경로 추가 후 저장
/Users/<사용자 이름>/k8sbook/bin
$ source /etc/paths
$ kubectl version --client
...GitVersion:"v1.19.6-eks-49a6c0...
GitVersion:"v버전번호-eks-xxxxxx" 형식의 메시지가 출력되면 정상입니다.
Node.js
nodejs란?
- Chrome v8 JavaScript 엔진으로 빌드된 JavaScript 런타임
- 고성능 네트워크 서버
- 단일 쓰레드(Single Thread) 이벤트 루프 (Event Loop) 기반
- 비동기 I/O 처리 (Non-Blocking I/O)
- 자바스크립트
- 개발 생산성 향상
- 방대한 모듈 제공과 큰 생태계(npm)
쓰레기 기반 동기방식(Blocking I/O)
- 하나의 쓰레드가 request를 받으면 모든 처리가 완료될 때까지 기다리다가 처리결과가 완료되면 다시 응답을 보냄
- 기존 업무 처리가 완료되기 전에 또다른 request가 있으면 새로운 쓰레드가 업무를 처리함
- 동시에 request가 많은 경우많은 쓰레드가 필요하게 되어 서버 과부화
단일쓰레드 이벤트 루프 기반 비동기방식(Non-Blocking I/O)
- 하나의 쓰레드가 request를 받으면 바로 다음 처리에 요청을 보내놓고 다른 작업을 처리하다가 먼저 요청한 작업이 끝나면 이벤트를 받아서 응답을 보냄
- 동시 request가 오더라도 처리가 완료될때가지 기다리지 않아도 되기 때문에 서버 부하가 적음
공식 페이지에서 14.17.5 LTS 버전으로 설치하도록 하겠습니다.
마찬가지로 다운로드가 완료되면 더블클릭하여 설치를 진행합니다.
$ node --version
설치가 완료되었다면 정상 설치되었는지 확인합니다.
해당 설치를 마쳤다면 실습을 위한 환경은 모두 구축되었습니다.
이후 실습은 다음 포스팅에서 다루도록 하겠습니다.
'AWS > EKS' 카테고리의 다른 글
로그 관리와 운영 (0) | 2021.08.26 |
---|---|
[AWS] CloudWatch의 Container Insights 로 애플리케이션 상태 파악 (0) | 2021.08.26 |
Amazon EKS 란 ? (1) | 2021.08.17 |