GCP 에 VM 인스턴스를 설정하고, 프로젝트에 필요한 리소스를 설치하는 과정을 기록한다.
1. VM 인스턴스
GCP에 접속한 후, 결제관리에 카드를 등록하면 90일, $300 를 무료로 사용할 수 있다. 물론 GCP 에서 바로 DB를 설정할 수 있는 항목이 있긴 한데, 그렇게 되면 따로 관리하기 힘들것 같아서 VM을 올리고 VM에 Docker Compose 방식으로 리소스를 설치하여 사용하기로 하였다. 처음 계획은 한달에 $100 씩 사용하여 총 3개월을 사용하려고 하였으나, 이것저것 설정하다 보니 가격이 올라 아래의 사진과 같은 스펙으로 합의하기로 하였다. OS 의 경우 Ubuntu 22.04 LTS 로 생성하였다.
2. 리소스 설치하기
리소스는 전부 Docker Compose 방식으로 설치하였다. Kafka 의 경우 Confluent Kafka 를 활용하였다. 다음은 각 리소스 파일의 docker-compose.yml 파일이다.
2.1 mariaDB
services:
maraidb:
image: mariadb:latest
container_name: mariadb
restart: always
ports:
- "3306:3306"
environment:
MARIADB_ROOT_PASSWORD: [password]
MARIADB_DATABASE: STOOCK
MARIADB_USER: root
MARIADB_PASSWORD: [password]
volumes:
- mariadb_data:/var/lib/mysql
volumes:
mariadb_data:
2.2 neo4j
services:
neo4j:
image: neo4j:latest
container_name: neo4j
restart: always
ports:
- 7474:7474
- 7687:7687
volumes:
- neo4j_data:/data
- neo4j_logs:/logs
- neo4j_import:/import
- neo4j_plugins:/plugins
environment:
NEO4J_AUTH: neo4j/[password]
volumes:
neo4j_data:
neo4j_logs:
neo4j_import:
neo4j_plugins:
2.3 scyllaDB
services:
scylla:
image: scylladb/scylla:latest
container_name: scylla
restart: always
ports:
- 9042:9042
- 9160:9160
environment:
SCYLLA_HOME: /var/lib/scylla
volumes:
- scylla_data:/var/lib/scylla
- scylla_logs:/var/log/scylla
command: --smp 2 --memory 512M --overprovisioned 1
volumes:
scylla_data:
scylla_logs:
2.4 jenkins
services:
jenkins:
image: jenkins/jenkins:lts
container_name: jenkins
restart: always
environment:
- TZ=Asia/Seoul
user: root
privileged: true
ports:
- 8080:8080
- 50000:50000
volumes:
- jenkins_home:/var/jenkins_home
volumes:
jenkins_home:
2.5 kafka
Confluent Kafka 는 설치하는 방법이 조금 달랐다. 공식문서를 활용하여 설치하였다. https://docs.confluent.io/platform/current/get-started/platform-quickstart.html
아래의 URL 만 Shell 창에 입력하면 docker copmose file 이 다운로드 된다. 2024.11.28 기준 최신버전은 7.7.1 이다. 버전은 공식 홈페이지를 참조하면 된다.
wget https://raw.githubusercontent.com/confluentinc/cp-all-in-one/7.7.1-post/cp-all-in-one-kraft/docker-compose.yml
현재 총 5개 (mariaDB, neo4j, scyllaDB, jenkins, Kafka)를 설치만 하였는데도 벌써 램을 이만큼이나 잡아먹는다 ... 프로젝트가 진행되면 버틸수 있을까 걱정이다.
3. 방화벽 설정
늘 그래왔듯 외부에서 접근하기 위해선 방화벽을 설정해줘야 한다. 콘솔에서 VPC 네트워크 - 방화벽 - 방화벽 규칙 만들기 로 접속하게 되면 새로운 방화벽을 등록할 수 있다. 설치한 리소스에 대한 포트를 모두 열어주게 되면 이제 공인IP 주소와 포트번호를 통해 외부에서 접속이 가능하게 된다 !
'Project > ST00CK' 카테고리의 다른 글
RKE2 Rancher 설치 실패 및 GCP 무료 크레딧 만료 ... 추후 계획 (2) | 2024.12.16 |
---|---|
GCP VM에 SSH 로 접근하기 (1) | 2024.12.10 |
Socket.IO, Kafka, Kafka Connect, ScyllaDB 사용 이유 (0) | 2024.12.05 |
express + Socket.IO 사용하기 (0) | 2024.12.03 |
메신저 + 주식 프로젝트 시작 (1) | 2024.11.27 |