✔️ Docker 컨테이너를 EKS를 이용해 배포해보는 실습
AWS를 처음 사용해보는 사람도 따라할 수 있도록 자세히 적어놨으니 따라하면 EKS 실습을 완료할 수 있을 것이다.
Windows Terminal에서 Ubuntu 20.04 LTS 환경으로 진행
✔️ AWS CLI 설치 및 초기 설정
첫번째로 AWS CLI를 설치한다. AWS CLI는 현재 버전 1, 2가 있는데 나는 2를 설치했다.
* AWS CLI(Command Line Interface)란 AWS 서비스를 관리하는 통합 도구이다. AWS 서비스를 명령줄에서 제어하고 스크립트를 통해 자동화할 수 있다.
AWS 공식 문서에서도 버전 2를 권장하므로 업데이트를 하면 좋을거 같다.
📌 Linux AWS CLI 2 설치 방법
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version을 입력했을 때 다음과 같이 aws-cli/2.x.x 가 뜬다면 정상적으로 설치되었음을 알 수 있다.
설치가 완료되었다면 공식 문서를 참고해 CLI 초기 설정을 진행한다.
📌공식 문서에 나온대로 초기 설정 하기
aws configure 명령을 입력하면 4가지 정보를 입력하라고 나온다.
- Access key ID
- Secret access key
- AWS Region - 기본적으로 요청을 보낼 서버의 AWS 리전을 식별한다. 일반적으로 가장 가까운 지역이다.
- Output format - 결과의 형식을 지정한다. Json, Yaml, Yaml-stream, text, table 등이 될 수 있다.
위의 예시와 같이 내 정보를 빨간 글씨 부분에 넣어주면 된다.
✔️ IAM 설정
✔️ Access Key ID 및 Secret access key
- 키 페어 생성
- .CSV 파일을 통해 키 쌍 가져오기
AWS의 많은 서비스들은 Root User로 생성/접속하는 것을 보안상 권고하지 않는다. 서비스를 관리하는 권한을 인스턴스를 생성한 IAM 엔터티로부터 할당시키기 때문에 IAM user 혹은 role을 사용 중이지 않다면 필수로 IAM 엔터티를 생성하고 사용하고자 할 서비스의 생성 역할을 부여해야 한다.
* IAM (Identity and Access Management)이란 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 서비스이다.
IAM을 이용해 각 사용자 별로 인증 및 권한 부여를 각각 따로 설정할 수 있다.
⭐️주의⭐️
보안 액세스 키를 다운로드 할 수 있는 "유일한" 시간은 키를 생성할 때이다. 나중에 복구할 수 없다. (물론 다시 만들 수는 있다.)
IAM 유저를 생성하려면 아래 글을 따라하면 된다.
여기서 .csv를 반드시 다운로드 해야한다 !!!
다운받은 .csv 파일을 열게되면 IAM 사용자명, 콘솔 로그인 URL, 비밀번호를 확인할 수 있고 콘솔 로그인 URL에 접근하여 사용자 이름과 암호를 작성해서 로그인할 수 있다.
.csv 파일을 열어서 발급 받은 Access key ID와 Secret access key를 입력해준다.
ap-northeast-2는 "서울" 지역을 의미하고 출력 형식은 json으로 지정했다.
참고
aws configure import --csv file://credentials.csv
위의 명령줄을 이용하면 .csv 파일 내용을 알아서 가져온다고 하니 파일 위치 명시에 주의하여 입력한다.
현재 세션의 IAM 엔터티를 확인하고 싶다면 다음 명령줄을 이용한다.
aws sts get-caller-identity
이제 aws cli 설정을 마쳤다.
✔️ Install eksctl and kubectl
EKS 생성을 위해 eksctl을 설치하고 추후 k8s 관리를 위해 kubectl도 사전에 설치해 주어야 한다.
* eksctl - AWS EKS에서 Kubernetes 클러스터를 생성하고 관리하기 위한 간단한 명령줄 유틸리티
* Kubectl - 클러스터 API 서버와 통신하기 위한 명령줄 유틸리티
📌 Linux에 eksctl 설치 방법
# 다음 명령을 이용해 eksctl 최신 릴리스를 다운로드 후 압축 해제한다.
curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
# 압축 해제된 이진 파일을 /usr/local/bin으로 옮긴다.
sudo mv /tmp/eksctl /usr/local/bin
# 설치가 제대로 되었는지 확인한다.
eksctl version
📌 Linux에 kubectl 설치 방법
Linux에 Kubectl을 설치하는 방법은 다양한데 나는 아마존 공식 문서를 참고하여 curl을 사용하는 방식을 채택했다.
- 리눅스에 curl을 사용하여 Kubectl 바이너리 설치
- 기본 패키지 관리 도구를 사용하여 설치
- 다른 패키지 관리 도구를 사용하여 설치
curl을 사용한 Kubectl 설치 방법
# 하드웨어 플랫폼용 명령을 사용하여 Amazon S3에서 클러스터의 Kubernetes 버전용 Amazon EKS 판매 kubectl 바이너리를 다운로드
curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.21.2/2021-07-05/bin/linux/amd64/kubectl
# 바이너리에 실행 권한을 적용
chmod +x ./kubectl
# 바이너리를 PATH의 폴더에 복사
# kubectl 버전이 이미 설치된 경우 $HOME/bin/kubectl을 생성하고 $HOME/bin이 $PATH로 시작하도록 해야 한다.
mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$PATH:$HOME/bin
(선택 사항 - 반드시 할 필요 없음) 셸 초기화 파일에 $HOME/bin 경로를 추가하면 셸을 열 때 구성
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc
# 다음 명령을 사용하여 버전을 확인
kubectl version --short --client
'Public Cloud > AWS' 카테고리의 다른 글
AWS EKS로 웹 앱을 배포해보자 ! - 2. Application 배포하기 (0) | 2022.03.16 |
---|---|
AWS EKS로 웹 앱을 배포해보자 ! - 1. EKS 구성하기 (0) | 2022.03.16 |
[AWS] AWS EKS란 ? (0) | 2022.03.15 |
[AWS] Amazon Compute Services (0) | 2022.03.02 |
[AWS] AWS VPC란 ? (0) | 2022.03.02 |
영차영차 성장 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!