[AWS] AWS 하나의 LB로 여러 서비스 운영하기
·
DevOps/AWS
개요지난 포스팅에서 하나의 로드밸런서로 여러 서브도메인, 서비스를 운영하는 것을 GCP를 통해 구축해보았다. (GCP를 사용하지 않더라도 앞의 글을 읽는 것을 추천한다.)  [DevOps] 하나의 LB로 여러 서비스 운영하기개요로드 밸런서는 운영관리 입장에서 상당히 많은 편의성을 제공한다.그래서 그런지 규모가 작은 프로젝트 즉, "부하 분산"이 필요없는 프로젝트임에도 불구하고 정말 많은 사람들이 로드 밸cobinding.tistory.com 이번에는 AWS의 로드밸런서와 라우팅 설정을 통해서 하나의 LB로 서브도메인을 구분하는 것을 세팅해보도록 한다.  AWS로 구축할 웹사이트는 user와 admin이 구별되어있다. user-main.example.com  admin-main.example.com 이 두..
[GCP] GCP 하나의 LB로 여러 서비스 운영하기
·
DevOps/GCP
개요로드 밸런서는 운영관리 입장에서 상당히 많은 편의성을 제공한다.그래서 그런지 규모가 작은 프로젝트 즉, "부하 분산"이 필요없는 프로젝트임에도 불구하고 정말 많은 사람들이 로드 밸런서를 활용한다. 그런데 나의 경우, 작은 프로젝트에 LB를 쓰는게 그 기술의 취지에 맞지 않고, 그렇기에 많은 자원이 낭비가 된다는 생각에 쓰기가 싫었다. (뭔가 괜히 패배하는 기분이랄까..?) 여기서부터 지옥 시작이었다.  포트로 분리된 서버에 LB 없이 하나의 서버로 각각의 포트에 SSL을 적용하는 테스크를 진행 (이 가설엔 논점이 굉장히 많은데, 다른 포스팅에서 다뤄보겠다.)했는데, 사실 이건 로드 밸런서로 뚝딱뚝딱 1-2시간이면 할 수 있는 업무다. [사건의 발단🥹] 그런데 위와 같은 이유로 로드밸런서를 사용하기 ..
[GCP] GCP 로드 밸런서와 Cloud NAT 구축
·
DevOps/GCP
개요회사 서버 개편 작업을 위해서 다음과 같은 작업을 수행하였다.Instance Template, Instance Group 생성 (https://cobinding.tistory.com/229)Cloud NAT Gateway 구축 (https://cobinding.tistory.com/244)  [GCP] Cloud Nat Gateway 구축 과정 및 작동 방식요구사항 서버 상황 현재 VM 인스턴스의 외부 ip는 임시 ip로 되어있다. 배포는 수동으로 “인스턴스 바꾸기”를 통해서 새로운 인스턴스 이름과 ip를 부여받는 방식으로 운영하고 있다. 인스턴스cobinding.tistory.com [GCP] Instance Template과 Instance Group을 통한 VM 서버 생성과 블루-그린 배포개요 ..
[GCP] Cloud NAT 구축 과정 및 작동 방식
·
DevOps/GCP
개요서버 상황배포는 “인스턴스 바꾸기”를 통해서 새로운 인스턴스 이름과 ip를 부여받는 방식으로 운영하고 있다.인스턴스 바꾸기를 통해 인스턴스를 삭제하고 교체하면, 인스턴스의 외부 ip도 인스턴스가 교체될 때마다 달라진다. 문제 상황NICE API 요청을 위해 ip 주소가 바뀔 때마다 화이트리스트에 등록을 해야함VM인스턴스에서 도는 웹사이트는 WebClient를 통해서 NICE 서버와 http 통신을 한다. 이때, VM 인스턴스의 외부 ip가 HTTP 통신 요청 헤더의 host 필드값으로 들어가게 된다. NICE 측에서는 이 요청값을 통해, 화이트리스트에 등록된 IP인지 아닌지 확인을 한다. ➡️ 따라서 IP를 번거롭게 매번 등록해야 한다. 위험성도 높다.인스턴스 바꾸기를 통해 배포가 될 때마다 외부 i..
[GCP] Instance Template과 Instance Group을 통한 VM 서버 생성과 블루-그린 배포
·
DevOps/GCP
개요웹사이트 개편 작업 이후 도입된 외부 API는 요청 헤더값에 우리 웹사이트의 vm 인스턴스 정보가 담긴다. 이러한 VM 인스턴스 IP 주소는 유동 IP로 설정되어있어서, IP가 변경될 때마다(배포할 때마다 - 블루∙그린배포) 매번 VM 인스턴스의 IP를 화이트리스트에 업로드해야 한다. 이러한 수동 업데이트 방식은 문제의 소지가 다분하다.  이 문제를 해결하기 위한 개편작업을 담당하였다. 그 과정을 시리즈로 블로그에 정리해보려 한다. 이 포스팅은 그 시작점인 Instance Template의 설정과 MIG이다.  Instance Template Instance Template은 MIG를 통해 서버를 운영하기 위해서 가상머신 생성을 위한 일종의 규칙 사항들을 정리해 놓은 것이다.GCP의 Instance ..
[GCP] Cloud Build 커밋/푸시없이 트리거 실행하기
·
DevOps/GCP
개요Cloud Build 작업을 하면서 트리거 테스트를 위해 계속 커밋을 남겼었다.그런데 공용 Repository에 커밋 및 푸시를 남기지 않고 트리거를 실행하고, 로그를 볼 수 있는 방법을 찾아서 공유한다.GCP는 상대적으로 자료가 많이 없어서 작업이 꽤 힘들다..🥹 GCP를 사용하는 동안 꾸준히 기록해보자!!  Cloud Build 트리거 실행 Cloud Build > 트리거 경로로 들어가서 빌드 테스트를 실행하고 싶은 트리거의 실행 버튼을 누른다.  그럼 위와 같이 트리거를 실행할 트리거 이름과 저장소, 브랜치 입력창이 나온다. 여기서 Cloud Build에 트리거 대상으로 설정해준 브랜치를 입력하고 트리거 실행을 하면된다. 그럼 바로 빌드가 되고 원격 저장소에 commit이 남지 않는다...! ..
[Backend] yaml 파일 작성법
·
Dev/Backend
😮‍💨 새로 CI가 필요한 프로젝트가 있어서 Cloud Build를 구축하는 도충 계속 아래와 같은 에러가 떴다. "failed unmarshalling build config cloudbuild.yaml: yaml: line 3: did not find expected key" yaml 파일 문법 에러가 발생한 것 yaml은 파이썬에서 tab으로 구분하듯이 띄어쓰기가 중요하다. 그런데 이러한 띄어쓰기 적용이 툴마다 달라서,,,, 아니 분명 intelliJ로 빌드할 땐 됐는데 외않되지?만 외치고 있다가 구글링을 통해 꿀정보 찾음 꿀정보는 아래 사이트인데, yaml -> json 변환 사이트로 yaml 문법이 잘못되면 잡아준다. https://www.json2yaml.com/convert-yaml-to-j..
[GCP] 인스턴스 접속 시 ssh key 접근 불가 해결 | ssh 없이 인스턴스 사용하기
·
DevOps/GCP
개요보통 서버에 SSH 접속 버튼을 눌러 접속하는데chmod 명령어로 ssh 키 관련 작업을 하고 서버에서 나간 이후....계속 아래와 같은 SSH 인증 관련 에러가 발생했다.    로그를 살펴보니까, Invalid ssh key entry 이런 오류가 발생했다.새로 키를 발급 받고 메타데이터에 추가하는 등 발버둥을 쳤지만 해결이 안돼서 다음과 같은 방법을 진행했다.  직렬 콘솔VM 인스턴스에서 직렬 콘솔에 연결을 설정하면 부팅 및 네트워킹 문제를 디버그하고 고장 난 인스턴스의 문제를 해결하는 등 여러 VM 인스턴스 관련 기타 문제 해결 작업을 수행할 수 있다. 실제로 포트를 연결하고 콘솔에 들어가보면 서버 상태와 관련한 로그들이 출력되므로, 문제 해결에 좋은 도구가 될 것같다.   직렬 콘솔을 사용한 ..
[GCP] Cloud Build & Cloud Run CI/CD, Docker, Bitbucket
·
DevOps/GCP
개요CI/CD 구축의 핵심 과정인 Google Cloud Build와 Cloud Run을 세팅하는 과정에 대해 알아보자.  1. Google Cloud Build 설정하기Google Cloud Build란?Google Cloud Build는 Google Cloud 인프라에서 빌드를 실행하는, 말 그대로 빌드 서비스다. 사용자가 세팅한 Trigger가 발생하면 Github, Cloud Storage 등등에서 소스 코드를 가져오고, 사양에 맞게 빌드를 실행한다. Docker Container나 Java Archive와 같은 도구를 통해 Artifact(빌드 결과물)를 빌드하도록 설정할 수 있다.  Cloud Build 동작 과정 1. Cloud Build의 빌드 트리거에 사용자가 설정한 코드 변경이 감지된다..
[GCP] Google Cloud SDK 설치 및 세팅
·
DevOps/GCP
개요Google Artifact Registry 구축기에 Google Cloud SDK 설치 및 세팅 관련 과정을 첨부해서 글을 작성했었는데 이를 따로 빼는 게 맞다고 판단하였다. GAR에만 쓰는 게 아니고 또 GAR 관련 포스팅 해야할 내용이 추가되었기 때문에.. 😆  1. Google Cloud SDK란?쉽게 말해서 Google Cloud 관련 툴을 다루기 위한 명령툴이다. 주의할 점필자는 서버 상에서 AR(Artifact Registry)에 접속해야 하므로 VM 인스턴스 서버에 설치를 했다.필요 하에 서버 자체에 설치를 할 수도 있지만 일반적인 경우라면 로컬에 설치하고, 편리하게 로컬 환경에서 접속할 수 있는 도구다.   2-1. Google Cloud SDK 패키지 경로 추가VM 인스턴스에 Go..
[GCP/Docker] GCP(Google Cloud Platform) Docker Setting
·
카테고리 없음
개요 Google Cloud Platform에 VM 인스턴스를 만들고 Docker를 설치하여 컨테이너화하려고 한다. 이번 포스팅에서는 VM 인스턴스에 Docker를 설치하는 과정을 정리한다. VM 인스턴스는 무료 버전(e2-micro)로 설정하고 부팅디스크는 20GB, http와 https 트래픽 접근을 허용해주었다. OS는 ubuntu 20.04 LTS로 세팅하였다. VM 인스턴스에 Docker 설치하기 VM 인스턴스를 조작하기 위해 os 접근 방법은 아래 콘솔 페이지에서 빨간 박스를 클릭하면 된다. SSH로 인스턴스에 접근을 해주면 다음과 같은 터미널 화면이 뜬다. 박스로 가린 내용은 서버 유저네임이다. 도커 설치를 위한 VM 인스턴스 기본 세팅 우선 루트권한을 얻기 위해 sudo su 명령어를 입력..
sebinChu
'GCP' 태그의 글 목록