티스토리 뷰

개요

  • CloudBeaver는 오픈 소스 및 유료 엔터프라이즈 데이터베이스 클라이언트로 명성이 높은 DBeaver의 웹 버전이다. CloudBeaver를 이용하면 MySQL, MariaDB, PostgreSQL, Trino 등의 원격 데이터베이스를 웹에서 접속하여 편리하게 사용할 수 있다. 이번 글에서는 ECSCloudBeaver를 설치하는 방법을 소개하고자 한다.

사전 지식

CloudBeaver 데이터베이스 EFS 생성

  • CloudBeaver는 데이터는 /opt/cloudbeaver/workspace 경로에 저장한다. 컨테이너 재기동이나 버전 업그레이드시 데이터 유실을 방지하기 위해 데이터 전용 EFS를 아래와 같이 생성한다.
Amazon EFS 콘솔 접속
→ [파일 시스템] 클릭
→ [파일 시스템 생성] 클릭
→ 이름: cloudbeaver-workspace-prod (입력)
→ Virtual Private Cloud(VPC): [foobar-prod] 선택 (마운트할 인스턴스가 속한 VPC 선택)
→ [생성] 버튼 클릭

CloudBeaver 데이터베이스 EFS 액세스 포인트 생성

  • CloudBeaver의 컨테이너는 uid=0, gid=0을 가진다. 이 정보를 토대로 동일한 환경의 EFS 액세스 포인트를 생성한다.
Amazon EFS 콘솔 접속
→ [파일 시스템] 클릭
→ [cloudbeaver-workspace-prod] 클릭
→ [액세스 포인트] 클릭
→ [액세스 포인트 생성] 버튼 클릭

# 액세스 포인트 생성 > 세부 정보
→ 이름: cloudbeaver-workspace-prod-opt-cloudbeaver/workspace (입력)
→ 루트 디렉토리 경로: /opt/cloudbeaver/workspace (입력)

# 액세스 포인트 생성 > POSIX 사용자
→ 사용자 ID: 0 (입력)
→ 그룹 ID: 0 (입력)
→ 보조 그룹 ID: 0 (입력)

# 액세스 포인트 생성 > 루트 디렉터리 생성 권한
→ 소유자 사용자 ID: 0 (입력)
→ 소유자 그룹 ID: 0 (입력)
→ 권한: 0755 (입력)

→ [액세스 포인트 생성] 클릭

CloudBeaver ECS 작업 정의 생성

  • Amazon ECS에 작업 정의를 생성할 차례이다.
Amazon ECS 콘솔 접속 → 작업 정의 → [새 작업 정의 생성] 클릭 → [FARGATE] 클릭
→ 작업 정의 이름: foobar-cloudbeaver-prod (입력)
→ 작업 역할: [ecsTaskExecutionRole] 선택
→ 네트워크 모드: [awsvpc] 선택
→ 작업 메모리(GB): [8GB] 선택
→ 작업 CPU(vCPU): [2 vCPU] 선택

# 볼륨 추가
→ [볼륨 추가] 클릭
→ 이름: cloudbeaver-data-prod
→ 볼륨 유형: [EFS] 선택
→ 파일 시스템 ID: [cloudbeaver-data-prod] 선택
→ Access point ID: [cloudbeaver-data-prod-var-lib-cloudbeaver] 선택
→ [추가] 클릭

# 컨테이너 추가
→ [컨테이너 추가] 클릭
→ 컨테이너 이름: foobar-cloudbeaver-prod
→ 이미지: docker.io/dbeaver/cloudbeaver (입력)
→ 포트 매핑: 8978/TCP

# 작업 및 컨테이너 정의 구성
→ [생성] 클릭

# 컨테이너 추가 > 스토리지 및 로깅
→ 탑재 지점
→ 소스 볼륨: cloudbeaver-workspace-prod (작업 정의에서 추가한 EFS 볼륨을 선택)
→ 컨테이너 경로: /opt/cloudbeaver/workspace (컨테이너에서 EFS 볼륨을 마운트할 경로 입력)
→ [추가] 클릭

CloudBeaver ECS 서비스 생성 및 실행

  • Amazon ECS에 작업 정의를 생성할 차례이다.
Amazon ECS 콘솔 접속 → 클러스터 → 서비스를 생성할 클러스터 클릭 → [서비스] 클릭 -> [생성] 클릭

# 서비스 구성
→ 시작 유형: [FARGATE] 선택
→ 작업 정의: foobar-cloudbeaver-prod
→ 버전: 1 (latest)
→ 플랫폼 버전: [1.4.0] 선택
→ 클러스터: [foobar-prod] 선택
→ 서비스 이름: foobar-cloudbeaver-prod (입력)
→ 작업 개수: 1 (입력)
→ 최소 정상 상태 백분율: 100 (입력)
→ 최대 백분율: 200 (입력)
→ 배포 유형: [롤링 업데이트] 선택
→ [다음 단계] 클릭

# 네트워크 구성
→ 클러스터 VPC: (마운트할 인스턴스가 속한 VPC 선택)
→ 서브넷: [foobar-prod-private-1], [foobar-prod-private-2], [foobar-prod-private-3] 선택
→ 보안 그룹: [foobar-prod-cloudbeaver], [foobar-prod-efs-access] 선택
→ 자동 할당 퍼블릭 IP: [DISABLED] 선택
→ 로드 밸런서 유형: [Application Load Balancer] 선택
→ 로드 밸런서 이름: [foobar-cloudbeaver-prod-public] 선택
→ 컨테이너 선택: [foobar-cloudbeaver-prod:8978:8978] 선택 → [로드 밸런서에 추가] 클릭
→ 프로덕션 리스너 포트: [443:HTTPS] 선택
→ 대상 그룹 이름: [foobar-cloudbeaver-prod-public-8978] 선택
→ [다음 단계] 클릭

# Auto Scaling
→ 서비스 Auto Scaling: [서비스 Auto Scaling을 구성하여 원하는 서비스 개수를 조정합니다.] 선택
→ 최소 작업 개수: 1
→ 최대 작업 개수: 2
→ 조정 정책 유형: [대상 추적] 선택
→ 정책 이름: foobar-cloudbeaver-prod (입력)
→ ECS 서비스 측정치: [ECSServiceAverageCPUUtilization] 선택
→ 대상 값: 70 (입력)
→ [다음 단계] 클릭

# 검토
→ [서비스 생성] 클릭
댓글
댓글쓰기 폼