Tech Blog
Oracle Cloud 인스턴스에서 Docker MySQL 사용 본문
주가 빅데이터 머신러닝 예측 파이썬 라이브러리를 개발하는 프로젝트에서 주가 빅데이터를 클라우드 데이터베이스에 적재하고, 사용자에게 제공하는 방법을 선택했습니다. 여러 시행착오 끝에 무료 인스턴스를 생성할 수 있는 오라클 클라우드에서 mysql을 설치하고, 적재하기로 하였습니다.
1️⃣ Oracle Cloud 인스턴스 생성 및 실행
먼저, Oracle Cloud의 인스턴스를 생성합니다. 오라클 클라우드 인스턴스 생성 및 SSH 접속하기 글을 참고하여 Oracle Cloud 의 무료 인스턴스를 생성하였습니다.
오라클 클라우드 인스턴스를 성공적으로 생성했고, Putty로 인스턴스를 실행하는 것까지 모두 세팅이 완료된 상태입니다.
이처럼 세팅해놓은 인스턴스를 Load 하여 바로 실행할 수 있습니다.
open을 누르면 login 창이 뜨고, 아이디를 ubuntu, 그다음 puttygen에서 설정한 비밀번호를 입력합니다.
엔터키를 누르면 위와 같이 인스턴스를 실행할 수 있습니다.
2️⃣ Docker 로 MySQL 설치
Oracle Cloud 인스턴스 MySQL 설치 글을 참고하였습니다.
먼저, ubuntu 방화벽을 설정합니다.
sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 3306 -j ACCEPT
sudo netfilter-persistent save
# netfilter-persistent save 실패 시
sudo apt install -y netfilter-persistent
오라클 클라우드 인스턴스는 기본 이미지가 오라클 리눅스 8버전인데, Ubuntu로 변경해서 인스턴스를 생성했다면, Ubuntu의 방화벽의 설정을 따로 해줘야 외부에서 접속이 가능해집니다. 따라서, iptables Configuration을 업데이트 해주어야만 오라클 클라우드 수신규칙에서 편집한 내용들을 반영할 수 있게됩니다.
docker로 MySQL 이미지 가져오기
docker 설치
sudo apt-get update
sudo apt install docker.io
MySQL 이미지 pull 받아오기
sudo docker pull mysql
ubuntu 터미널에서 docker를 설치하고, mysql 이미지를 pull 받아옵니다. 버전을 명시하고싶으면 mysql:[버전] 과 같이 명시를 해주면 됩니다.
docker-compose.yaml 파일 생성
docker compose 설치
sudo apt install -y docker-compose
docker-compose 파일을 사용하여 도커 컨테이너를 관리하도록 하겠습니다. 먼저 docker-compose를 설치합니다.
docker-compose.yaml
version : "3.1" #파일 버전
services :
mysql :
image : mysql:latest # MySQL 이미지 버저너
container_name : mysql # 컨테이너 이름 지정
ports :
- "3306:3306" # 포트 마운트
restart : always
environment :
MYSQL_ROOT_PASSWORD : # root 로 접속할 때 사용할 비밀번호
TZ : "Asia/Seoul" # TimeZone 세팅
command :
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
volumes :
- /home/ubuntu/docker/data/mysql:/var/lib/mysql
그 다음, docker-compose 파일을 작성한 후 이 파일을 관리할 디렉토리에 넣습니다. 저는 루트 디렉토리에 위치시켰습니다.
docker-compose 파일 실행
sudo docker-compose up -d
docker-compose 파일을 실행합니다.
실행중인 도커 컨테이너 확인
sudo docker ps
잘 실행되었는지 확인하고, 위의 사진과 같이 나오면 성공적으로 실행되는 것입니다.
컨테이너 실행
sudo docker exec -it mysql bash
mysql -u root -p
첫번째 줄에서 mysql은 컨테이너의 이름입니다. 첫째 줄을 실행하면 도커 컨테이너가 실행되며, 두번째 줄을 실행하면 mysql이 실행됩니다. mysql 실행 시 docker-compose 파일에서 설정했던 password를 입력하여 접속할 수 있습니다.
3️⃣ 외부에서 MySQL 접속
mysql workbench를 사용하여 외부 접속을 실험합니다.
Connection Name에 원하는 이름, Hostname에 ip 주소, Password에 비밀번호를 입력하고, 접속 합니다. 정상적으로 실행된다면, 이제 ubuntu 터미널 외부에서도 데이터를 처리할 수 있습니다.
▪️ reference
'etc. > 경험' 카테고리의 다른 글
github action 컴파일 (JOSS 논문) (0) | 2023.03.21 |
---|---|
Python에서 AWS dynamoDB 사용하기 (0) | 2023.03.19 |
git lfs 사용하여 대용량 데이터 업로드하기 (0) | 2023.03.18 |