[F-lab 챌린지 90일차 TIL]

성수데브리·2023년 9월 27일
0

f-lab_java

목록 보기
72/73

NCP 서버 이사 작업 복기

서버 구매

  • 서버 3개월 운영 비용 계산하여 적당한 스펙의 서버 구매했음
  • Ncp 는 server 가 클래식, vcp 버전으로 나뉘어져 있었슴..
  • 삽질 : 호기롭게 구매부터 했는데 잘못 사서 반납했다.. Ncloud 문서를 가볍게 스키밍하고 했었으면 만원 안날렸다...

방화벽 설정

  • AWS 보안 그룹 인바운드, 아웃바운드 규칙 셋팅 작업과 동일
  • NCP 는 ACG 라는 명칭을 사용
  • 난관 : 배포를 SSH 접속하여 커맨드로 하거나 깃헙 서버에서 테스트를 수행하려면 임시로 깃헙 서버 IP 인바운드 규칙을 추가해야 한다. API 로 인바운드 규칙 추가가 가능함.
    그런데 NCP 는 API로 ACG 규칙 변경을 VPC 서버만 제공함..
  • Class 서버 반납하고 VPC 서버로 구매... VPC 서버는 시작가가 더 비싸다..

서버 셋팅

  • VPC 서버는 네트워크를 VPC 를 구성해야한다.. 다행히 복잡한 설정이 필요 없었어서 VPC, 서브넷 2개 추가 구매만 하고 별다른 설정을 하지 않았다.
  • 공인 IP 2개 구매하고 서버와 연결
  • Scouter agent 설치.
  • 그룹 생성하고 유저 추가. 워킹 디렉토리 만들고 권한 유저에게 추가.
  • 도커 설치
  • Github 서버 인증 추가. 깃헙 액션 워크플로우에서 SSH 로 디플로이 하기 때문에 유저가 sudo 명령어 쓰면 비밀번호 입력 뜨는거 설정으로 제거함. (올바른 행동인가? 알아보자)

github action 워크플로우 작성

  • 2개의 서버로 배포해야되서 같은 내용의 워크플로우 파일을 2개 만들었음..
  • NCP ACG API 요상하다.. 방화벽에 임시로 깃헙액션 서버 ip 추가와 삭제, 총 2번의 변경 요청을 해야하는데 동시에 날릴 수 없다고 에러 응답온다... 이거 해결해야함..
  • 깃헙 액션 환경별 시크릿 추가 기능 이용함
  • 대박 난관 : AWS와 달리 NCP 는 API 요청하려면 엑세스키와 시크릿키로 시그니처를 생성해서 헤더에 포함해야된다....이 로직을 깃헙 워크플로우에 넣어야 해서 API 문서에서 쉘 스크립트 샘플 코드를 활용함...
    문제는 깃헙액션 변수를 쉘 스크립트 파일에서 써야했음... 공식문서 찾아가며 연습용 레포지토리에서 몇시간 테스트 해보고 쉘스크립트 샘플 코드를 내 환경에 맞게 완성했음.
  • NCP 정말 헷갈리는게 API URL 안내가 친절하지 않다. NCP는 국산이라 그런지 정부기관용 NCP도 있고 핀테크 기업용 NCP도 있다. 다 API URL이 다른데 문서 생김새는 똑같았음;; 정부기관용 NCP 문서에서 URL 을 가져온 것을 모르고 왜 내 인증이 자꾸 까이나 원인 찾아보겠다고 이것 저것 바꿔보는 삽질을 했다.

배포

  • SSH 로 명령어 날려서 Docker 이미지 다운받는데 docker 명령어 실행 권한이 없어서 모든 명령어에 sudo가 필요했다. docker 그룹에 내가 만든 유저도 추가하여 권한 부여하는 것으로 해결

API 요청 테스트

  • Scouter에 agent.java 지표는 잘 뜨는데 agent.host 가 안뜬다... 이것도 해결해야 한다.
  • DB, vault 통신 잘 되었음.

0개의 댓글