[파이널 프로젝트] 프론트 페이지 경로 구분 오류

신현식·2023년 4월 23일
0

구름_Kubernetes

목록 보기
23/25
post-thumbnail

User / Admin 페이지 경로 구분

이전 작업으로 3-tier 구성의 연결을 완료하였고, Frontend 부분에서는 Ingress의 다중경로를 사용하여 User 와 Admin페이지를 구분하였다. 또한 User, Admin, Backend의 파이프라인 구축도 완료한 상태이다.

브라우저에서 /(루트) 경로를 입력하면 User, /manager를 입력하면 Admin 페이지로 접속되게 하였고 처음에는 정상적으로 작동하였다. 하지만 시간이 지나니 /manager를 입력했을 때 페이지 오류가 발생하였다. 다시 파이프라인을 빌드하니 정상적으로 작동하지만 다른 팀원은 접속이 안되는 현상이 발생하였다.

💡 원인 분석

Frontend에서 Backend로 요청을 보낼때 /api이후 /auth/login이나 /auth/signup과 같이 경로를 구분해서 GET이나 POST 요청을 보내고 Backend는 해당 경로에 맞는 코드가 존재해 DB와 상호작용을 통해 데이터를 가공하고 Frontend와 주고받는다.
하지만 Admin페이지에 접속할때 /manager라는 경로를 임의적으로 설정해놨기 때문에 이후에 Frontend가 요청하는 경로와 충돌이 발생하고 Backend에 정확한 경로로 요청을 보내지 못하게 되는 것 같다.

  • 따라서 Route53에서 도메인 하나 더 사서 Ingress에서 다중경로가 아닌 다중 호스트로 구분했다.
    -> 하나 더 구매한 도메인 또한 external-dns를 이용하여야 하기 때문에 기존의 존재하는 서비스계정(= IAM롤)을 이용하여 파드만 띄워놨다.
    -> 또한 해당 도메인에도 ACM을 이용해 인증서를 발급받아 HTTPS를 적용하였다.
vi Front-ingress.yaml
. . .
  annotations:
    alb.ingress.kubernetes.io/certificate-arn: <도메인1 arn>,<도메인2 arn>
  # https적용하기 위한 도메인의 인증서 arn적용 
. . . 
spec:
  rules:
  - host: "k8s-finalproject.com" # User페이지를 위한 도메인 
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: front-svc-user
            port:
              number: 80
  - host: "k8s-finalproject-admin.com" # Admin페이지를 위한 도메인 
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: front-svc-admin
            port:
              number: 80
  • Frontend-Ingress에서 다중 호스트를 이용하여 페이지를 구분하였다.

  • 또한 HTTPS적용을 위해 도메인 인증서의 arn을 적용하였는데 두개이상의 arn을 적용할때는 ,를 이용하여 구분하면된다.
    -> 처음에는 각 arn마다 주석을 추가하거나, 리스트 형태로 여러 arn을 구분하였는데 에러가 발생하였다.

profile
전공 소개

0개의 댓글