[EKS] 3Tier 구성 - 백엔드 서버 구성

이정훈·2023년 7월 10일
0

EKS

목록 보기
5/9
post-thumbnail

1. 백엔드 구성

  • 백엔드 Deployment를 생성할 네임스페이스를 생성한다. 예시에서의 namespace 이름은 app으로 한다
kubectl create namespace app
  • yaml 파일을 작성한다. 이름은 자유롭게 작성하되, 예시에서는 create-back-pod.yaml로 한다
  • Deployment의 이름도 namespace와 동일하게 app으로 한다
# create-back-pod.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: app
  namespace: app
spec:
  selector:
    matchLabels:
			# 아래 template 속성에서 지정할 metadata.labels의 값과 key, value를 일치시켜야한다
      type: app
  replicas: 4
  strategy:
    type: RollingUpdate
  minReadySeconds: 10
  template:
    metadata:
      labels:
        type: app
    spec:
      containers:
      - name: backend
				# 위에서 복사한 이미지의 URI
        image: <AWS ID>.dkr.ecr.ap-northeast-2.amazonaws.com/was:174
        ports:
				# Container가 동작할 때 사용할 Listening 포트
				# gunicorn의 default 포트인 8000번을 활용
        - containerPort: 8000
      terminationGracePeriodSeconds: 3
  • Deploy 적용!
    kubectl apply -f create-back-pod.yaml

  • 프론트엔드 서버에서 백엔드 서버로 접근할 때 사용할 서비스 생성
  • 서비스의 타입은 로드밸런서 타입으로 한다
  • 생성을 위해 yaml 파일을 작성한다 예시에서는 create-back-svc-lb.yaml 으로 생성
# create-back-svc-lb.yaml

apiVersion: v1
kind: Service
metadata:
  name: svc-back
  namespace: app
spec:
  selector:
		# Deployment의 template label과 key, value를 매칭해준다
    type: app
  ports:
    - protocol: TCP
      port: 8000
      targetPort: 8000
  type: LoadBalancer
  • Servic 적용!
kubectl apply -f create-back-svc-lb.yaml

  • 여기서 이름이 다를 것이다. 왜냐하면 나는 이파일들을 전부 helm으로 묶어서 진행했다. 이건 CICD 부분에서 확인바람!
profile
싱숭생숭늉

0개의 댓글