[Oracle Cloud Server]오라클 클라우드 서버 생성 Show 오라클 클라우드 생성 준비물 생성한 계정, puttygen(ssh key의 이유로), putty.exe(접속해야지?) cloud.oracle.com Oracle Cloud Infrastructure cloud.oracle.com 접속 계정생성. 가입은 해외결제가 되는 카드.. babysunmoon.tistory.com 적용 한다면 바로 오픈 된다. 서버 내에서 방화벽을 사용 하던지, 좀더 디테일하게 조정해서 보안을 선택하던지 이제 자유다... 1. 개요최근 JPA 공부를 시작하면서 항상 로컬에서 생성된 H2 DB를 사용했었다. 집에서 데스크탑으로 DB를 이용하는 것은 문제가 없었지만 외부의 환경에서 DB에 접속해야 할 때가 있었다. 따라서 미루지 말고 DB 전용 서버를 구성해야 겠다고 생각했다. Google Cloud Platform 에서의 실패먼저, 본인은 GCP 무료 등급의 클라우드 환경이 있었는데 컴퓨트 엔진 성능은 아래와 같다.
미국 서버라 레이턴시가 아쉬웠지만 간단한 24시간 봇을 돌리기에는 전혀 부족함 없는 환경이었고 잘 사용해왔었기 때문에 MariaDB 서버 설치를 시도해봤다.
CentOS 7 환경에서 설치까지는 문제가 없었지만 mysql 서비스를 시작할 때 오류가 발생했다! 해결 방법을 열심히 찾아보았지만… 해결하지 못했고 이미 봇을 돌리고 있었기 때문에 메모리 점유율도 80%에 가까워서 포기하게 되었다. 오라클 클라우드 무료 티어?사용중인 GCP에 DB를 구성하는 것은 포기했지만 다른 무료 클라우드 서비스를 찾아보았고 오라클 클라우드에 무료 티어를 선택했는데 이유는 다음과 같다.
무엇보다 공인 IP 제공 무료 라는 점이 마음에 들었던 것 같다. 2. 오라클 클라우드VM 생성오라클 클라우드 무료 티어 가입에 대해 잘 설명된 블로그들을 참고하며 쉽게 가입할 수 있었고 컴퓨트 엔진 인스턴스를 생성해주었다. SSH 연결오라클 클라우드의 특이한 점은 컴퓨트 인스턴스를 생성할 때 SSH 연결용 암호화 키를 설정해주는데 생성이 완료된 이후에 이를 변경할 방법이 없다는 것 이다.. 사실 RSA 암호화 키를 생성할 때 문제가 생겨서 VM 인스턴스를 다시 생성했었다. 두번째는 문제없이 SSH 키를 설정하였고 윈도우 PowerShell에서 openSSH를 통해 접속을 시도했는데 오류가 발생했다.
조금 당황했지만 오류 메세지에 나와있는 맨 처음 VM 인스턴스를 생성하고 SSH 연결을 하면서 오류가 났었는데, 그 때 연결을 시도 했던 host 정보가 known_hosts 파일에 저장되있어서 충돌이 발생했던 것 이었다.
윈도우 환경에서 PowerShell을 통한 SSH 연결에 성공했다! 이후에 개인 키를 맥북에도 넣어주었고 MacOS 환경에서 정상적으로 연결되는 것을 확인했다. 공용 서브넷 포트 설정그 다음에는 DB 외부 접속을 위해 오라클 클라우드 VCN 포트를 개방해주었다. MariaDB의 기본적인 포트는 3306이며 다른 포트를 사용할 생각이 없었기 때문에 3306 포트를 개방했다.
위의 경로를 접속하면 VCN에 대한 송수신 규칙을 설정해 줄 수 있다. 이처럼 어디서나 접속할수 있는 환경을 위해 모든 IP에 대해 3306 포트를 열어주었다. 3. Ubuntu 설정, MariaDB 설치Ubuntu 초기 설정먼저 우분투의 root 계정에 대한 비밀번호를 설정해주었다.
그 다음 우분투의 시간대를 변경해주었다. 기본적으로는 UTC로 설정되어 있다.
다음으로는 apt 패키지 관리자를 업데이트 / 업그레이드 해주었다.
MariaDB 설치우분투에 대한 설정은 완료된 것 같아서 MariaDB를 설치해주었다. MariaDB 공식 홈페이지의 설치법을 보고 진행하였다. MariaDB의 버전은 가장 최신 Stable 버전인 10.5를 설치했다.
MariaDB 암호 설정정상적으로 MariaDB가 설치되었다면 다음으로는 암호를 설정해주어야 한다.
암호 설정도 끝이 났고 MariaDB 서비스가 정상적으로 작동하는지 확인해보았다. 아래와 같이 active (running) 으로 표시되면 정상적으로 작동하고 있는 것이다.
이후 생성한 root 계정으로 MariaDB에 접속하여 앞으로 사용할 DB를 만들어주었다.
외부 접속이 가능한 ‘root’ 유저 생성다음으로는 루트 권한을 가진 사용자로 외부에서 접속이 가능하도록 설정해주었다. 먼저
다음은 외부에서 연결이 가능하도록 IP를 설정하고 포트를 개방해주었다. 우분투 기준
그리고
변경된 설정을 적용하기 위해 mysql 서비스를 재시작 해주었다.
하지만 이 상태로 외부 접속을 성공하지는 못했다! 4. 리눅스 포트 개방연결 실패 원인모든 설정을 완료했다고 생각했는데 외부에서 접속을 할 수가 없었다… 관련 정보들을 찾아보면서 우분투의 방화벽에서도 포트를 개방해야 한다는 것을 알게되었다. 이해가 쉽게 예로 들자면 이전에 오라클 클라우드 서비스에서 개방한 포트는 인터넷 or 모뎀에서 허용한 인바운드 규칙인 것 이고 이번에 하는 것은 운영체제의 방화벽에서 인바운드 규칙을 설정해 주는 것이다. 먼저 우분투 개방된 LISTEN 포트들을 확인해보았다. 우분투 내에 3306 포트에 대한 인바운드 규칙이 없어서 연결이 안되는 것 이었다.
인바운드 규칙 추가
5. 연결 성공References
|