WordPress on Amazon EKS - 시작하기 (1)

pu1etproof·2021년 8월 9일
0

AWS

목록 보기
6/7

❗️ 이 블로그로 이전하기 전에 작성한 글입니다.

크게 4단계로 나눌 수 있다.

1. EKS Workshop 시작하기

  1. Cloud9 Environment (EKS workshop) 생성
  2. Kubernetes Tools 설치
  3. IAM Role 생성
  4. IAM Role 적용
  5. IAM 설정 업데이트

    2. Eksctl을 이용해 cluster 시작하기
  6. eksctl 설치
  7. EKS cluster 생성
  8. EKS cluster 테스트

    3. Helm CLI 설치
  9. Helm CLI 설치 전
  10. Helm CLI 설치

    4. WordPress 설치
  11. WordPress 설치
  12. WordPress 접속

AWS 가이드가 제일 자세하고 정확하기 때문에 글의 하단에 참고 사이트를 확인하자.

1장. EKS Workshop 시작하기

1. Cloud9 Environment (EKS workshop) 생성

1) Cloud9 시작

가까운 region에서 생성하면 된다. 대표적인 region은 Oregon, Ireland, Ohio, Singapore 가 있다.

난 us-west-2에서 생성할 것이다. (개인 취향😊)

2) Create environment

[Name environment] -> Next Step

Name : eksworkshop

[Configure settings] -> Next Step -> Create environment

Instance type : t3.small (프리티어면 t2.micro)


언급한 것 외엔 모두 기본 설정값으로 생성한다.

create Environment Name Environment Configure settings

3) New Terminal

처음엔 2분할 되어 터미널이 띄어지는데, 모두 닫고 새로운 터미널을 생성한다.

New Terminal workspace

이렇게 세팅해놓고 시작하자.

2. Kubernetes Tools 설치

1) kubectl 설치

sudo curl --silent --location -o /usr/local/bin/kubectl \
  https://amazon-eks.s3.us-west-2.amazonaws.com/1.17.7/2020-07-08/bin/linux/amd64/kubectl

sudo chmod +x /usr/local/bin/kubectl

2) awscli 업데이트

sudo pip install --upgrade awscli && hash -r

3) jq, envsubst (GNU gettext utilities), bash-completion 설치

sudo yum -y install jq gettext bash-completion moreutils

4) yaml 프로세싱을 위한 yq 설치

echo 'yq() {
  docker run --rm -i -v "${PWD}":/workdir mikefarah/yq yq "$@"
}' | tee -a ~/.bashrc && source ~/.bashrc
  • yq : command-line YAML processor, yaml 파일의 jq 또는 sed가 되는 것이 목적
  • jq : command-line JSON processor
  • sed : ed 명령어와 grep 명령어 기능의 일부를 합친 명령어

5) 바이너리가 경로와 실행파일에 있는지 확인

for command in kubectl jq envsubst aws
  do
    which $command &>/dev/null && echo "$command in path" || echo "$command NOT FOUND"
  done

설치가 되어있다면,

6) kubectl의 bash 쉘 자동 완성 활성화

kubectl completion bash >>  ~/.bash_completion
. /etc/profile.d/bash_completion.sh
. ~/.bash_completion
  • kubectl completion bash : bash의 kubectl 완성 스크립트 출력
  • 자세한건 여기서 참고하자

7) AWS ALB Ingress Controller 버전 설정

echo 'export ALB_INGRESS_VERSION="v1.1.8"' >>  ~/.bash_profile
.  ~/.bash_profile

3. Workspace를 위한 IAM Role 생성

1) 링크 클릭

2) 개체 선택 -> 다음:권한

AWS 서비스, EC2를 선택한다.

3) 권한 정책 연결 -> 다음:태그

AdministratorAccess 를 선택한다.

4) 태그 설정(선택) -> 다음:검토

Name : eksworkshop-admin 태그를 추가한다.

5) 검토 -> 역할 만들기

역할 이름 : eksworkshop-admin 설정한다.

4. IAM Role 적용

1) EC2 > 인스턴스

[인스턴스 설정] > [IAM 역할 연결/바꾸기] 를 선택한다.

2) IAM 역할 연결/바꾸기 -> 적용

3번에서 생성한 IAM을 선택한다.

5. IAM 설정 업데이트

1) workspace > 기어 버튼 > AWS Settings > Credentials 비활성화

2) 기존 creadentials 파일 삭제

임시 credentials 파일이 이미 존재할 수도 있기 때문에,
기존 credentials 파일을 삭제한다.

rm -vf ${HOME}/.aws/credentials

3) aws cli 구성

현재 region을 default로 하여 aws cli를 설정해야한다.

export ACCOUNT_ID=$(aws sts get-caller-identity --output text --query Account)
export AWS_REGION=$(curl -s 169.254.169.254/latest/dynamic/instance-identity/document | jq -r '.region')

4) AWS_REGION 설정 확인

AWS_REGION이 원하는 region으로 되었는지 확인한다.

test -n "$AWS_REGION" && echo AWS_REGION is "$AWS_REGION" || echo AWS_REGION is not set

되어 있으면, `AWS_RESION is [설정한 region]` 형식으로 출력된다.

5) 설정값 bash_profile 저장

설정한 ACCOUNT_ID, AWS_REGION을 bash_profile에 저장한다.

echo "export ACCOUNT_ID=${ACCOUNT_ID}" | tee -a ~/.bash_profile
echo "export AWS_REGION=${AWS_REGION}" | tee -a ~/.bash_profile
aws configure set default.region ${AWS_REGION}
aws configure get default.region

6) IAM Role 확인

GetCallerIdentity CLI command를 사용하여 Cloud9 IDE가 올바른 IAM Role을 사용하고 있는지 확인한다.

aws sts get-caller-identity --query Arn | grep eksworkshop-admin -q && echo "IAM role valid" || echo "IAM role NOT valid"


IAM Role이 유효하면,

이 과정에서 NOT valid라고 출력되면, 이후의 과정을 절대 진행하지 말고 돌아가서 이 과정을 다시 확인하자.

이로써 거의 반이 끝났다.

자세한 사항은 AWS 공식 가이드를 참고하면 된다.


참고 https://www.eksworkshop.com/intermediate/250_cloudwatch_container_insights/

profile
🚀 백엔드 1년차 개발자입니다 🚀 성장의 즐거움으로 아자자자!🤣

0개의 댓글