Cloud/GCP
이번 포스팅에서는 GCP에서 지속적 통합/배포라고 불리는 CI/CD 파이프라인을 구축해보는 작업을 해보도록 하겠다. CI/CD 란? CI는 지속적 통합(Continuous Integration) CD는 지속적 배포(Continuous Deployment)을 나타낸다. CI, Continuous Integration (지속적 통합): 개발자들이 작업한 코드를 지속적으로 통합하여 통합 문제를 최소화하고, 코드 변경이 일어날 때마다 자동으로 빌드 및 테스트가 실행되며, 코드베이스에 통합시키도록 한다. CD, Continuous Deployment (지속적 배포) : CI를 통과한 이후, 자동화된 프로세스를 통해 테스트를 통과한 코드를 실제 환경으로 자동으로 프로덕션 환경에 배포하는 파이프라인 구축을 목적으로 ..
이전 포스팅에서 GCP의 쿠버네티스 클러스터를 생성하고, 클러스터 내부의 데이터베이스와 Application 작업을 생성하고, 네트워크 연결까지를 다루었다. 이번 포스팅에서는 Kubernetes Ingress 설정과 이를 통해서 HTTPS 적용을 해보도록 하겠다. Kubernetes Ingress Kubernetes 클러스터 내에서 HTTP 및 HTTPS와 같은 웹 트래픽을 관리하고 라우팅하기 위한 API 및 리소스이다. 클러스터 외부에서 내부로 들어오는 HTTP/HTTPS 요청을 처리하고 여러 서비스들 앞에서 라우터 역할을 하고, 클러스터의 진입점 역할을 한다. 웹 애플리케이션의 경로 기반 라우팅, 로드 밸런싱, SSL/TLS 암호화, 호스트 기반 라우팅 등 다양한 설정을 지원한다. 즉 Kubernet..
이전 포스팅에서 GCP의 쿠버네티스 클러스터를 생성하고, 클러스터 내부의 데이터베이스와 Application 작업을 생성해보는 과정까지를 거쳤다. 이번 포스팅에서는 Cloud Shell을 통해 Kubernetes 클러스터에 접속해보고, 클러스터 내부간의 연결 및, 클러스터 외부에서 Application에 접근을 가능하도록 하기 위해서 네트워크 설정을 해보도록 하겠다. 쿠버네티스에 관한 내용은 아래 포스팅에 남겨두었으니 참고하면 좋을 것 같다. https://sjh9708.tistory.com/99 [Kubernetes] 쿠버네티스의 개념과 구성 요소 쿠버네티스란? 쿠버네티스(Kubernetes)는 컨테이너 오케스트레이션 플랫폼의 하나로, 분산 시스템을 관리하고 배포하는 데 사용된다. 쿠버네티스는 컨테이너..
이번 포스팅에서는 오토 스케일링과 무중단 배포를 위해서, GCP 인스턴스를 쿠버네티스 클러스터를 사용해서 생성하고 관리하는 과정을 다루어 보려고 한다. 쿠버네티스에 관한 내용은 아래 포스팅에 남겨두었으니 참고하면 좋을 것 같다. https://sjh9708.tistory.com/99 [Kubernetes] 쿠버네티스의 개념과 구성 요소 쿠버네티스란? 쿠버네티스(Kubernetes)는 컨테이너 오케스트레이션 플랫폼의 하나로, 분산 시스템을 관리하고 배포하는 데 사용된다. 쿠버네티스는 컨테이너화된 애플리케이션을 자동화된 방식으 sjh9708.tistory.com 쿠버네티스 클러스터 생성하기 클러스터는 쿠버네티스가 관리하는 전체 시스템을 의미하며, 클러스터에는 여러 대의 서버, 가상 머신으로 구성된 노드들이 ..
이번 포스팅에서는 기존에 http로만 접속 가능했던 배포 API를 SSL 인증서를 적용하여 https로 접속 가능하게 만들고, 로드밸런서를 적용을 통해 HTTPS 및 부하 분산을 적용시키는 것을 다룰 것이다. 로드밸런서 로드밸런서는 여러 대의 백엔드 서버 또는 인스턴스 그룹 사이에서 들어오는 트래픽을 분산하는 역할을 한다. NginX 등이 리버스 프록시로서의 로드밸런서의 역할을 할 수 있으며, GCP 또한 클라우드 내에서 로드밸런서 장착을 지원한다. 리버스 프록시 리버스 프록시는 클라이언트와 백엔드 서버 사이에 위치하여, 백엔드 서버의 포트, 리소스 자원 등의 노출을 방지하고 보안을 강화할 수 있다. SSL 종단점 설정을 통해 암호화된 연결(HTTPS)을 처리가 가능하다. TLS/SSL 종단점: HTTP..
이번에는 앞서 배포해보았던 인스턴스에 도메인을 연결하여, IP가 아닌 도메인으로 접근 가능하도록 만들어보려고 한다. DNS 영역 만들기 구매한 도메인을 백엔드 서버와 연결시키려고 한다. 메뉴->네트워킹->Cloud DNS->영역 만들기에 들어가 DNS 영역을 만들자. 영역 이름을 작성하고, DNS 영역 이름에 구매한 도메인 이름을 작성해주자. DNS 영역의 리소스 레코드 성공적으로 DNS 영역을 만들었다면 다음과 같은 화면이 보일 것이다. 아래쪽에 리소스 레코드들이 모여있는 레코드 모음이라는 곳이 보일 것이다. SOA 레코드 : Start Of Authority, DNS 영역을 만들때 기본적으로 등록되는 레코드, 도메인의 시작점이며 관리 권한이 시작되는 곳이다.. NS 레코드 : NameServer, 도..
이전 포스팅에서 GCP에서 VM 인스턴스를 사용하여, Docker를 이용하여, API 서버 및 데이터베이스를 구축하는 과정을 살펴보았었다. https://sjh9708.tistory.com/95 [GCP] Node.js(NestJS) 프로젝트를 Docker를 이용하여 클라우드 배포해보기 Google Cloud Platform (GCP)은 Google이 제공하는 클라우드 컴퓨팅 서비스 플랫폼이다. 비슷한 경쟁사로는 AWS, Azure 등이 있다. 해당 포스팅에서는 Docker를 이용하여, GCP 인스턴스에 배포하는 방법을 간략 sjh9708.tistory.com 그렇다면 이번 포스팅에서는, Docker를 이용해서는 API 서버만 구축하고, 데이터베이스를 GCP에서 제공해주는 클라우드 관리형 데이터베이스로 ..
Google Cloud Platform (GCP)은 Google이 제공하는 클라우드 컴퓨팅 서비스 플랫폼이다. 비슷한 경쟁사로는 AWS, Azure 등이 있다. 해당 포스팅에서는 Docker를 이용하여, GCP 인스턴스에 배포하는 방법을 간략하게 다루어보도록 하겠다. 물론 해당 포스팅에서 다룬 내용 이외에 GCP의 활용 가능성은 무궁무진하지만, 가장 간단하게 사용할 수 있는 방법을 소개하려고 한다. 해당 포스팅에서는 Docker에 대한 자세한 설명은 다루지 않으므로, Docker에 대해서 모른다면 블로그 내의 다른 Docker 관련 포스팅을 참고하자. 무엇을 할 것인가 간단히 말해서, 컴퓨터를 빌리고, 안에서 Docker를 이용하여 앱을 실행시키고, 네트워크를 설정시켜서 외부에서 접속 가능하게 하기! G..