오늘은 구글 클라우드 플랫폼을 이용하여 프로젝트를 생성하고 서버를 구축하는 방법에 대해 알아보도록 하겠습니다.
기본 정보
서버를 구축하는 과정은 다음과 같습니다.
1. Google Cloud 계정 생성 및 프로젝트 설정
- Google Cloud 계정 생성: 먼저, Google Cloud 공식 웹사이트에 접속하여 계정을 생성합니다.
- 프로젝트 생성: 계정을 생성한 후, Google Cloud 콘솔에 접속해 새 프로젝트를 만듭니다.
- Google Cloud Console에서 "프로젝트 선택"을 클릭하고, "새 프로젝트"를 선택하여 원하는 이름으로 프로젝트를 생성합니다.
2. Billing 설정
- Google Cloud는 유료 서비스이므로, Billing(결제 정보)을 설정해야 합니다. 다만, 처음 가입 시 무료 크레딧이 제공됩니다.
- 결제 설정 후 무료로 제공되는 90일 간의 $300 크레딧을 사용할 수 있습니다.
3. Compute Engine API 활성화
- Google Cloud에서 서버를 만들기 위해 Compute Engine을 사용해야 하며, 이 API를 활성화해야 합니다.
- Navigation Menu에서 Compute Engine을 선택하고, API 활성화 버튼을 눌러 활성화합니다.
4. 가상 머신(서버) 생성
- Compute Engine VM 인스턴스 생성:
- Google Cloud Console의 좌측 메뉴에서 Compute Engine → VM 인스턴스로 이동합니다.
- "인스턴스 만들기"를 클릭합니다.
- 인스턴스 설정:
- 이름: 서버의 이름을 지정합니다.
- 지역 및 영역: 서버의 물리적 위치를 설정합니다. 서비스가 위치한 지역을 고려해 선택하세요.
- 머신 구성: 서버의 사양을 설정할 수 있습니다. (예: vCPU 개수, 메모리 크기 등)
- 부팅 디스크: 운영체제를 선택합니다. 예를 들어, Ubuntu, Debian, CentOS, Windows 등 원하는 OS를 선택합니다.
- 방화벽 설정: 서버가 외부에서 접근 가능하도록 "HTTP" 및 "HTTPS 트래픽 허용"을 선택합니다.
- 인스턴스 생성: 설정이 완료되면 인스턴스 만들기를 클릭해 서버를 생성합니다.
5. SSH로 서버 접속
서버가 생성된 후에는 SSH로 서버에 접속할 수 있습니다.
- Google Cloud Console의 Compute Engine → VM 인스턴스 목록에서 생성한 인스턴스를 확인하고, "SSH" 버튼을 클릭하면 브라우저에서 바로 서버에 접속할 수 있습니다.
6. 서버 설정 및 관리
SSH 접속 후, 일반적인 리눅스 서버 관리 방식으로 서버를 설정할 수 있습니다.
- 필요한 패키지를 설치하고, 웹 서버(Nginx, Apache 등)를 설정하거나, 데이터베이스를 설치하는 등 서버에서 필요한 작업을 수행합니다.
7. 외부에서 서버 접근
서버에 외부에서 접근할 수 있도록 고정 IP를 설정하거나, 서버의 방화벽 규칙을 설정해 원하는 포트(예: 80, 443)를 열어야 합니다.
- Compute Engine의 네트워크 설정에서 방화벽 규칙을 수정할 수 있습니다.
구축하기
우선 구글 클라우드 플랫폼에 들어가야 서버를 제작할 수 있으므로 아래의 링크에 들어가야합니다.
로그인을 하고 나면 우선 프로젝트를 생성해야합니다.
우측 상단에 있는 콘솔 버튼을 눌러주도록 합니다.
왼쪽 상단 박스 안에 있는 버튼을 눌러 줍니다.
여기서 새 프로젝트를 생성 할 수 있습니다.
위 사진처럼 Computer Engine 버튼을 눌러줍니다.
위 사진처럼 인스턴스를 만들어줘야 하므로 VM 인스턴스를 생성하도록 하겠습니다.
위 사진에서 이름은 인스턴스의 이름 입니다.
리전(지역)을 선택할 때는 사용자와 가까운 지역을 고르는 것이 일반적으로 좋은 선택입니다. 이는 지연 시간(레이턴시, Latency)을 줄이기 위해 중요합니다. 서버가 물리적으로 사용자와 가까운 위치에 있을수록, 데이터 전송 속도가 빠르고 응답 시간도 짧아질 수 있습니다. 그래서 저는 서울을 선택했습니다.
그리고 밑에 머신 구성에서 저는 텍스트 파일과 미디어 파일의 송수신을 목표로 하기 때문에 그렇게 고성능 서버가 필요하지 않았습니다. 그래서 무난한 E2 서버를 골랐습니다.
만약 다른 후보를 고른다면
- E2 (저렴한 비용, 일상적인 컴퓨팅 처리)
- vCPU: 0.25 - 32
- RAM: 1~128GB
- 특징: 가장 저렴한 옵션으로, 텍스트 파일 송수신이나 가벼운 미디어 처리 작업에 적합합니다. 미디어 파일이 크지 않고 서버에 큰 부하를 주지 않는다면 이 옵션이 적합할 수 있습니다.
- 추천 이유: 비용이 저렴하고, 일반적인 데이터 송수신 작업에는 충분한 성능을 제공합니다.
- N2 (균형을 이룬 가격과 성능)
- vCPU: 2 - 128
- RAM: 2~864GB
- 특징: 가격과 성능의 균형이 잘 맞으며, Intel Cascade 및 Ice Lake 프로세서를 사용. 조금 더 안정적인 성능이 필요하다면 N2가 적합할 수 있습니다.
- 추천 이유: E2보다는 성능이 높으며, 더 큰 규모의 미디어 파일을 처리하는 경우 유연성을 제공.
- N2D (균형을 이룬 가격과 성능, AMD EPYC)
- vCPU: 2 - 224
- RAM: 2~896GB
- 특징: N2와 유사하지만 AMD EPYC 기반의 서버로, AMD의 강력한 멀티코어 성능을 활용할 수 있습니다.
- 추천 이유: N2와 유사하지만 AMD 서버가 더 저렴한 경우가 많습니다. 미디어 파일 송수신에 조금 더 큰 리소스가 필요할 때 적합.
- 가장 저렴한 옵션: E2 (일반적인 데이터 송수신 작업에 적합!)
- 가격 대비 성능: N2 (텍스트와 미디어 파일 처리에서 균형 잡힌 성능!)
- AMD 성능 활용: N2D (AMD EPYC의 멀티코어 성능이 더 저렴할 수 있음!)
이런 후보들도 있으니 자신에게 맞는 서버를 선택하시는게 좋습니다!
사전 설정에서 e2-medium은 EC2(가상 클라우드 컴퓨터)의 사양을 설정하게 됩니다. 당연하게도 사양이 높을 수록 가격 부담도 높아지게 됩니다.
가용성 정책에서 표준이랑 결함이라는 항목이 나오게 되는데
표준(대부분의 워크로드에 적합)이란
- 설명: 이 모델은 일반적인 애플리케이션과 서비스를 위한 가상 머신(VM) 프로비저닝을 최적화합니다. 이 모델은 사용자의 요구에 따라 가상 머신을 동적으로 배포하고 관리하여 성능을 극대화하는 데 초점을 맞춥니다.
- 용도: 웹 서버, 데이터 처리, 테스트 및 개발 환경 등 다양한 일반적인 워크로드에 적합합니다.
- 특징:
- 비용 효율성: 적당한 성능과 리소스를 제공하면서도 비용을 최적화합니다.
- 유연성: 다양한 성능 요구 사항을 가진 애플리케이션에 쉽게 적용할 수 있습니다.
- 자동 확장: 트래픽 증가에 따라 VM을 자동으로 추가하거나 축소하여 응답성을 유지합니다.
스팟(내결함성 워크로드에 적합)
- 설명: 이 모델은 고가용성 및 내결함성을 요구하는 애플리케이션을 위한 VM 프로비저닝을 최적화합니다. 시스템이 장애가 발생해도 계속해서 서비스가 제공될 수 있도록 설계되었습니다.
- 용도: 금융 시스템, 의료 애플리케이션, 대규모 서비스 운영 등 높은 가용성이 필요한 워크로드에 적합합니다.
- 특징:
- 중복성: 여러 VM을 배포하여 하나의 VM이 실패하더라도 다른 VM이 계속 작동하도록 보장합니다.
- 자동 복구: 시스템의 장애 발생 시 자동으로 다른 VM에서 애플리케이션을 복구하거나 전환하여 서비스 중단을 최소화합니다.
- 모니터링 및 경고: 시스템 상태를 지속적으로 모니터링하고 장애 발생 시 즉각적으로 알림을 보냅니다.
요약
- 대부분의 워크로드에 적합: 일반적인 애플리케이션 및 서비스에 유용하며, 비용과 유연성을 고려합니다.
- 내결함성 워크로드에 적합: 높은 가용성과 내결함성을 요구하는 중요한 시스템에 적합합니다.
저는 미디어 파일 송수신만 할 목적으로 만들었습니다.
모든 체크를 마친 후 밑에 만들기를 누르시면 VM 인스턴스가 만들어진 것을 알 수 있습니다.
위 버튼을 눌러서 접속 할 수 있습니다.
마침
제 설정을 꼭 굳이 따라하실 필요는 없습니다! 사용자마다 서버 머신의 사용은 다를 수 있으므로 상황에 맞게 사용하시면 됩니다!