- GCP에 로그인하고 Cloud Console로 이동합니다.
Compute Engine은 GCP에서 가상 머신(VM)을 제공하는 서비스입니다. Compute Engine을 검색하거나 탐색 메뉴에서 Compute Engine > VM 인스턴스로 이동합니다.
웹 서버를 호스팅할 가상 머신 인스턴스를 생성합니다.
가상 머신를 설정할 때 다음 사항을 고려합니다:
- 이름: 웹 서버를 설명할 수 있는 이름을 지정합니다.
- 리전: VM이 실행되는 지리적 위치입니다.
- 영역: 리전 내의 개별 데이터 센터입니다.
- 머신 유형: 웹 서버의 트래픽 규모에 따라 CPU와 메모리를 선택합니다. (예: 초소형 머신 f1-micro)
- 부팅 디스크: 원하는 운영체제를 선택합니다. 웹 서버용으로는 보통 Ubuntu 또는 Debian을 선택합니다.
- 방화벽 설정: 웹 서버에 외부 트래픽을 허용하기 위해 HTTP 트래픽 허용과 HTTPS 트래픽 허용을 체크합니다.
VM 인스턴스가 생성되면, SSH 버튼을 클릭하여 터미널로 접속합니다. 이 터미널에서 웹 서버 소프트웨어를 설치하고 관리할 수 있습니다.
웹 서버 코드 및 소프트웨어를 설치합니다.
웹 서버가 실행 중인 가상 머신에 도메인을 연결하려면, DNS 설정에서 도메인을 GCP의 가상 머신 IP 주소로 매핑해야 합니다. Cloud DNS를 사용하여 도메인을 GCP VM에 연결할 수 있습니다.
- Cloud DNS를 검색하여 DNS 영역 생성을 클릭합니다.
- 도메인 이름을 등록하고, DNS 설정에서 A 레코드를 통해 VM의 외부 IP 주소를 도메인에 연결합니다.
HTTPS를 활성화하려면 SSL 인증서를 설치해야 합니다. Let's Encrypt와 같은 무료 SSL 인증서를 사용할 수 있습니다.
웹 서버가 정상적으로 구동되면, 트래픽을 모니터링하고 서버 리소스를 관리하기 위해 GCP의 Stackdriver와 같은 모니터링 도구를 사용할 수 있습니다.
- 웹 서버 코드 작성: React 등으로 웹 서버 코드를 작성합니다.
- Docker로 컨테이너화: Dockerfile을 작성하여 웹 서버 코드와 종속성들을 포함한 컨테이너 이미지를 만듭니다. 이 이미지 안에 필요한 웹 서버 소프트웨어(Nginx 등)와 함께 웹 애플리케이션이 포함됩니다.
- 로컬에서 테스트: Docker로 해당 컨테이너를 로컬에서 실행해 보고, 모든 기능이 정상적으로 작동하는지 확인합니다. 이 과정에서 오류가 발생하거나 서버가 예상대로 동작하지 않으면, 클라우드에서 작업하기 전에 로컬에서 쉽게 디버깅할 수 있습니다.
- 컨테이너 레지스트리 업로드: 테스트가 완료된 컨테이너 이미지를 Docker Hub, AWS ECR(Amazon Elastic Container Registry), GCP GCR(Google Container Registry) 등과 같은 컨테이너 레지스트리에 업로드합니다. 이렇게 하면 다른 환경에서도 컨테이너 이미지를 쉽게 가져와서 실행할 수 있습니다.
- 클라우드 서버 준비: AWS, GCP, Azure와 같은 클라우드 서비스에서 가상머신을 설정합니다. 이 가상머신에는 Docker가 설치되어 있어야 합니다.
- 컨테이너 실행: 클라우드 서버에서 이전에 업로드한 컨테이너 이미지를 가져와서 실행합니다. 가상머신에 별도로 웹 서버 소프트웨어를 설치하거나 코드를 배포할 필요가 없습니다. 그저 Docker 컨테이너를 실행하기만 하면 됩니다.
- 배포 후 테스트: 클라우드 환경에서 컨테이너가 제대로 작동하는지 다시 테스트합니다. 로컬에서 테스트한 환경과 동일한 컨테이너를 사용하므로, 예상대로 작동할 가능성이 높습니다.