티스토리 뷰
개요
CloudBeaver
는 오픈 소스 및 유료 엔터프라이즈 데이터베이스 클라이언트로 명성이 높은DBeaver
의 웹 버전이다. CloudBeaver를 이용하면 MySQL, MariaDB, PostgreSQL, Trino 등의 원격 데이터베이스를 웹에서 접속하여 편리하게 사용할 수 있다. 이번 글에서는 ECS에 CloudBeaver를 설치하는 방법을 소개하고자 한다.
사전 지식
- Amazon ECS와 AWS Fargate에 대한 이해가 필요하다. [관련 링크]
- Amazon EFS에 대한 이해가 필요하다. [관련 링크]
- Amazon ELB에 대한 이해가 필요하다. [관련 링크]
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 (입력)
→ [다음 단계] 클릭
# 검토
→ [서비스 생성] 클릭
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 로드바이크
- kotlin
- Docker
- java
- Kendo UI
- jpa
- chrome
- jsp
- 태그를 입력해 주세요.
- spring
- CentOS
- jstl
- 구동계
- Eclipse
- Tomcat
- JavaScript
- maven
- graylog
- 알뜰폰
- bootstrap
- 평속
- Spring Boot
- MySQL
- Kendo UI Web Grid
- DynamoDB
- 자전거
- 로드 바이크
- node.js
- Spring MVC 3
- JHipster
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함