메뉴 닫기

AWS 라이트세일 DB 접속 외부 프로그램 SQLyog 사용법

AWS 라이트세일 DB 접속 외부 프로그램 사용법

머리말

아캣이는 개발자로써 활동을 오래 해오다 보니 DB(데이터베이스) 에 접속 하는 건 일상이 되어 있다. 그렇다 보니 당연하게도 DB 접속시 DB 종류에 따라 많은 설치형 프로그램을 사용해왔다.

AWS 라이트세일 에 워드프레스를 설치하고 DB 구조를 분석해보고 싶어서 접속 방법에 대해서 웹서치를 하며 열심히 찾아보았으나 당연히 금방 나올 줄 알았던 것이 무슨 일인지 아무리 찾아도 검색이 되지 않았다.

‘왜 이런 내용을 다룬 글이 없는거지? 라이트세일은 외부프로그램 접속을 허용 안하나?’ 급기야는 이런 생각까지 들기도 하였다.

실제로 어떤 호스팅 업체에서는 보안을 들먹이며 외부프로그램 접속을 허용하지 않았던 곳도 있었기에 그런 경험을 바탕으로 의심을 해 본것이다.

그래서 아캣이는 AWS 에서 자체적으로 차단을 하고 있지 않는 이상 네트워크 상식적인 선에서 DB에 접근 하는 방법으로 그간의 경험을 바탕으로 한 지식으로 접근 시도를 해보았다.

결론은 너무 단순하고 심플하게 금방 해결이 되었는데 왜 이런 내용을 다룬 포스팅이 없을까 싶을 정도로 허무 했다.

그래서 지금 부터 그 방법에 대해서 팁을 전수 하고자 한다.

Summary

  • DB 접속 외부 프로그램 간단한 소개
  • 추천 무료 프로그램 SQLyog 설치
  • AWS 라이트세일 DB 접속 방법

DB 접속 외부 프로그램 소개

SQLyog

SQLyog
이번 포스팅에서 사용할 툴이며 부분 무료로 사용 할 수 있다.

물론 무료로 사용할 경우에는 여러 부분에서 기능이 제한 되어 있으나 데이터 검색이나 쿼리를 날리는 등 주요 기능을 사용하는데는 전혀 무리가 없다.

SQLyogWebyog 이라는 업체에서 제공하는 툴 중 하나이며 사실 현재로써는 공식 홈페이지에서 무료 배포 소스를 공식적으로 홍보하고 있지는 않다. 공식 홈페이지에서는 14일 트라이얼 버전을 제공하고 유료로 유도하는 것으로 알고 있다.

무료 설치파일은 개발자들이면 누구나 알고 있는 소스 형상관리툴을 제공하는 Github 라는 곳에서 배포하고 있다.
(음.. 그럼 공식 배포라고 해야하는 건가? 🤔🤔)

Windows, Linux 를 지원하며 Mac 사용자는 아쉽지만 다른 툴을 알아보자.

MySQL, MariaDB 를 지원한다.

다운 URL: https://github.com/webyog/sqlyog-community/wiki/Downloads

 


HeidiSQL

HeidiSQL
HeidiSQL 은 무료 프로그램이다.

꽤나 직관적이면서도 가벼운 프로그램이다.

완전 무료인 오픈소스이다보니 현업에서도 다양한 곳에서 많이 사용하고 있는 프로그램이다.

무료 임에도 가볍고 왠만한 기능은 다 지원하기 때문에 강추 하는 툴이다.

Windows 버전만 지원 하므로 Mac 을 사용하는 분들은 아쉽지만 포기해야 한다.

MySQL, MariaDB, PostgreSQL, SQLite, SQL Server 등을 지원한다.

다운 URL: https://www.heidisql.com/download.php

 


DBeaver

DBeaver
DBeaver 는 부분 무료 프로그램이다.

무료 버전으로만 사용해도 상당히 다양하고 막강한 기능들을 제공한다.

개인적으로는 좀 무겁고 느리다는 느낌이 들어서 현재는 잘 사용하고 있지는 않다.

Windows, Mac, Linux 등 다양한 OS 지원한다.

MySQL, MariaDB, PostgreSQL, SQLite 등을 지원하며 Pro(유료) 버전 사용시 MongoDB, Cassandra, Redis, CouchDB 와 같은 NoSQL 도 지원한다.

다운 URL: https://dbeaver.io/download/

 


Work Bench

MySQL Workbench
Work BenchMySQL 사에서 공식적으로 배포하고 있는 무료 프로그램이다.

단, 주의 해야 할 점은 MariaDB 10.x 버전 부터는 정상적으로 사용이 불가능 하다.

현재 라이트세일 에서 워드프레스 자동설치 인스턴스를 사용하고 있다면 MariaDB 10 버전대를 사용하고 있으므로 Work Bench 는 피하도록 하자.

MySQL 을 사용하는 사람들에게는 무료 툴 중에서 단연 최고 라고 생각한다. 강추!!

MySQL 을 지원한다.

다운 URL: https://dev.mysql.com/downloads/workbench/

 


Navicat for MySQL



Navicat for MySQL

이 프로그램은 무료는 아니다. 유료에 관심이 없는 사람이라면 볼 필요는 없다.

개인적으로는 여러 프로그램 중 가장 마음에 들어서 라이센스 구매하여 오랫동안 애용하고 있는 프로그램이다.

SQLyog MySQLMariaDB 를 포커스로 두고 있는 반면 NavicatMySQL, MariaDB, SQL Server, Oracle, PostgreSQL, MongoDB, SQLite 등등 다양한 DB 를 타겟으로 제품 판매를 하고 있다.

하나의 프로그램에서 모든 DB를 접속할 수 있는 제품은 Premium 제품 인데 라이센스 비용이 상당히 비싼 편이다.

개인적으로는 MySQLMariaDB 둘다 사용 가능한 Navicat for MySQL 제품을 비상업용 영구 라이센스를 구매해서 사용중 이다.

매우 아쉬운 단점이라면 같은 제품이라도 OS 별로 라이센스를 별도로 구매 해야 한다는 것이다.

Windows, Mac, Linux 등 다양한 OS 지원한다.

다운 URL: https://www.navicat.com/kr/products


위에 소개한 것들은 대중적으로 많이 사용하는 툴중 몇개만 소개 한 것일뿐 유료, 무료 합치면 엄청나게 많은 툴들이 존재 한다.

소개한 툴들이 맘에 들지 않거나 내가 사용하는 OS 에 맞지 않다면 웹서치를 통해서 알아보고 이것 저것 설치해서 사용 해보면서 나에게 맞는 툴을 찾는 것은 정말 중요하다.

SQLyog 설치 및 설정

설명은 Windows 기준으로 진행하겠다. SQLyog 다운로드 페이지에서 설치 파일을 다운 받자.

SQLyog 설치 파일 다운로드

위와 같이 가장 최신버전으로 다운 받은 뒤 설치를 진행하면 되는데 설치 과정에서 특별히 설정 할 것 없이 다음 – 다음 – 다음 만 누르면 되므로 설치 과정은 생략 하도록 하겠다.

설치가 완료되고 프로그램을 실행 시키면 다음과 같은 화면이 뜰텐데 새로운 호스트를 추가 해주자.

SQLyog - DB 접속 설정

SQLyog - DB 접속 설정 설명

  • MySQL Host Address: 웹서버 IP
  • 사용자이름: root (bitnami 아니니 꼭 확인할 것)
  • 비밀번호: 하단 참조

DB 접속 비밀번호는 AWS 라이트세일 웹서버에 SSH 로 접속해서 비밀번호를 알아낸 후 복사해서 넣도록 하자.

$ cat bitnami_application_password

SQLyog - DB 접속 오류

테스트 연결을 해보면 위와 같이 접속 오류가 뜰 것인데 현재는 접속 안되는게 당연한거다.

접속 중에는 마우스가 빙글빙글 돌고 있는데 접속이 안되서 그런거고 잠시 후면 풀리면서 위와 같은 메시지가 뜰테니 괜히 안된다고 막 클릭하면 응답없음 을 보게 될것이다.


접속문제 해결

방화벽 포트 개방

모든 네트워크는 서버 접근시 지정 포트를 통해 통신을 한다.

그런데 보통 업체에서는 기본적으로 개방을 안해놓기 때문에 방화벽에서 포트 개방부터 해보자.
MySQL 의 기본포트3306 포트 이다.

AWS 라이트세일 대시보드 > 인스턴스 > (워드프레스 웹서버 클릭) : 네트워킹 탭

AWS 라이트세일 - 방화벽 포트개방 규칙 추가

AWS 라이트세일 - 방화벽 포트개방 규칙 추가 생성

AWS 라이트세일 - 방화벽 포트개방 규칙 추가 완료

자 드디어 3306 포트가 개방 되었다. 이젠 서버로 접속 할 수 있….. 안.되.잖.아!! 아~ 모지?? 😤😤😤

SQLyog - DB 접속 에러

근데 분명 지금 현재 접속은 안되지만 처음 접속 시도 했을때와 미묘한 차이가 있는것을 느꼈는가??

분명 처음 접속 시도 했을때는 상당히 오랬동안 로딩..로딩..로딩.. 하다가 접속 에러가 났지만 현재는 생각보다 꽤나 빠르게 접속 에러가 나고 있는 것이다.

이 말은 처음에는 3306 포트가 막혀 있었기 때문에 아예 서버 자체에 접근조차 못해서 계속 서버에 접근 재시도를 하다보니 오래 걸렸던 것이고 현재는 3306 포트가 열렸기 때문에 정상적으로 서버에 접속은 되었기 때문에 빠르게 에러가 나온 것이다.

아직 문제는 있지만 한발자국 해결이 되었다는 소리다.

자 그렇다면 일단 서버에는 접속이 되었지만 DB 에는 접속이 안된다는 건데… 뭘까?? 서버 내부에서 DB 접속을 막고 있는게 뭘까…

우선 SSH 로 서버에 접속해서 체크 해보자.

서버에 3306 포트는 정상 통과 된것으로 판단되고 그 다음부터 막혔으니 일단 네트워크 포트 상태부터 확인 해보자.

AWS 라이트세일 SSH - 네트워크 포트 체크
$ netstat -ntlp

어?? 벌써 문제점이 포착 되었다. 0.0.0.0 의 의미는 모든 IP 를 받아들이겠다~ 정도로 이해를 하면 되는데 3306 포트를 보면 Foreign Address (외부 에서 접근하는 IP) 는 모든 IP 를 받도록 설정이 되어 있지만 Local Address (내부 IP) 는 127.0.0.1 로 설정이 되어 있다.

이 말의 뜻은 로컬: 3306 포트로컬 에서만 접근을 허용하겠다고 로컬 IP 를 고정 시켜 놓은 것이다.

이제 우리가 할 일은 127.0.0.1 로 되어 있는 것을 0.0.0.0 으로 바꾸면 된다. 그럼 내부 포트 3306 역시 우리가 접근하는 내 PC의 IP역시 서버에서 받아 줄 것이다.

DB 설정 파일을 열어보도록 하겠다.
vi 에디터 라는 것을 이용해서 파일내용을 수정 할텐데 vi 에디터를 처음 사용하는 분들을 위해 조금 더 설명을 첨부 할테니 설명을 정독하면서 따라 해보기 바란다. 어렵지 않다! 두려워 말라! GoGo 씽~

AWS 라이트세일 SSH - vi 에디터 실행
$ vi /opt/bitnami/mariadb/conf/my.cnf

위의 내용을 스크린샷 처럼 복사 붙여넣기 한후 엔터 입력하여 vi 에디터로 접속 하자.


AWS 라이트세일 SSH - my.cnf DB 포트 바인딩 주소 수정 커서 이동

자 벌써 우리 목표 127.0.0.1 이 보인다. vi 에디터는 자판 하나하나가 명령어가 지정 되어 있으니 접속한 상태에서 함부로 아무 것도 누르지 말고 방향키를 이용해서 위의 스크린샷 위치까지 커서를 이동해주자.
(다른 내용들은 서로 다를 수 있으나 별로 신경쓰지 말 것)


여기서 영문 i 키를 눌러주면 다음과 같이 INSERT (내용 수정) 모드로 변경이 된다.

AWS 라이트세일 SSH - my.cnf DB 포트 바인딩 주소 수정 INSERT 모드

혹시나 한글 자판으로 되어 있으면 안먹힐 수도 있으니 그럴 경우엔 영문으로 변경 후 다시 시도 해보길 바란다.

INSERT 모드가 되었으면 이제 내용 변경이 가능하다 방향키숫자키를 이용하여 0.0.0.0 으로 수정을 해준 후 ESC 키를 눌러준다.


AWS 라이트세일 SSH - my.cnf DB 포트 바인딩 주소 수정 INSERT 모드 종료

ESC 키 를 눌렀다면 위 스크린샷과 같이 INSERT 글자가 사라지면서 INSERT 모드에서 빠져나오게 된다.


여기까지 되었다면 변경 된 내용 저장 후 vi 에디터에서 빠져 나오면 되는데 방법은 다음과 같다.

AWS 라이트세일 SSH - my.cnf DB 포트 바인딩 주소 수정 저장 후 vi 에디터 종료
:wq

명령어 입력 후 엔터!!
세미콜론( ; ) 이 아니고❌ 콜론( : ) 이며 ⭕ Write & Quit 저장 후 빠져 나오겠다는 뜻이다.


AWS 라이트세일 SSH - 네트워크 포트 체크
$ netstat -ntlp

기쁜 마음으로 다시 포트를 확인 해보았으나 어?? 아직 변경이 되지 않았다…😡😡😡

그렇다… 설정 파일 내용만 수정이 된 것이지 실제로 서버에서 실행되고 있는 DB 데몬을 재시작을 해줘야 새로운 설정 파일이 적용 될 것이다…😅😅😅

아래 명령어를 입력하여 현재 실행중인 데몬명을 알아보자

AWS 라이트세일 SSH - DB 데몬 명 확인
$ sudo /opt/bitnami/ctlscript.sh status


오우 이~ 귀여운 녀석~ 많이 듣던 이름이 보이는 군! mariadb 이 이름으로 재시작 시켜보자.

AWS 라이트세일 SSH - DB 데몬 재시작 후 네트워크 포트 확인
$ sudo /opt/bitnami/ctlscript.sh restart mariadb


MariaDB 가 재시작 되고나서 다시 포트를 확인 해보면 이젠 정상적으로 0.0.0.0:3306 이 적용 된 것을 확인 할 수 있다.

그렇다면 어디 다시 한번 DB 접속 하러 가볼까나??

SQLyog - DB 접속 성공

오예~~ 성공!!!! 😆😆😎

이제 연결 버튼을 눌러서 접속하면 되며 다음에 접속 할때는 접속 정보가 저장되어 있으니 서버명 선택해서 연결 하면 된다.

SQLyog - DB 접속 화면

DB 접속 화면인데… 오우… 원래 테이블이 저렇게 많지 않은데 플러그인 이것 저것 깔았더니 뭔가 엄청 깔려 있군!!

마치며

이번 포스팅에서 해결책을 보면 글만 길었지 너무도 간단하고 쉽게 해결이 되었다.

물론 아무나 쉽게 생각할 수 있는 부분은 아니지만 서버를 조금 다뤄 봤고 네트워크의 대한 전문 지식이 있는 분들 입장에서 보면 너무 나도 초보적인 수준이다.

근데 이상하리만치 Third party tool 을 이용해서 DB 에 접근하는 방법에 대해서 기술한 글은 잘 안보이고 거의 phpMyAdmin 으로 접근 하는 글들만 보였다. 몇 시간을 웹서치를 했는데도 말이다.

아캣이의 생각엔 같은 AWS 라이트세일을 사용하더라도 몇 년전 글에서 보이는 라이트세일의 인터페이스와 2023년 현재의 인터페이스가 조금씩 달라져 보이는 부분들도 보이고 예전엔 지원하지 않고 수동으로 처리 해야 하는 것들이 현 시점에서 봤을땐 자동화가 잘 되어있어 너무 편하게 처리 되는 경우들이 많았다.

시간이 흐르면서 AWS 라이트세일 도 분명 계속 편의성 업그레이드를 했을테고 AWS 운영 방침이 해마다 바뀌기도 했을 테니 그동안에는 다른 분들이 시도를 안한게 아니라 못했을 수도 있을지 모른다.

그게 아니라면 워드프레스 운영이 목적인 사람들은 대부분은 굳이 DB 접속까지 할 필요성을 느끼지 못해서였을까??? 😱😱😱

흠흠… 뭐! 여튼 누군가에겐 소수라도 이 글이 도움이 되었으면 하는 마음에 포스팅을 해본다.😊👍

Posted in 네트워크, 워드프레스

관련 글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다