무료로 클라우드 서비스 이용이 가능하다는 글을 접하고 자체 서버를 이용하여 운영하던 개발 환경을 클라우드 환경으로 변경하고자 시도하였다. 클라우드라 하여 특별한 것은 없었고 용어 또는 논리적인 개념의 이해가 요구되었다. 처음 클라우드 서비스를 접하는 거지만 많은 인터넷 자료들이 있고 과거 물리적 서버 구축 경험이 있어 실재 구축은 1시간 정도 소요된 것 같다.
오라클 클라우드
본 글에서는 클라우드 서비스를 기반으로 WEB/WAS 서버와 DBMS 서버 구현 작업을 계획하였다. 무료 오라클 클라우드는 아래와 같은 순서의 작업을 통하여 이용할 수 있다.(→ MySql 서버 생성 포함)
① Oracle Cloud 계정 생성
② VM 인스터스 생성 (CentOS 7.x)
③ 원격 접속
④ MySql 설치
⑤ VM 인스턴스 공인 IP 및 방화벽 설정
⑥ 로컬에서 MySQLWorkbench 툴을 이용한 MySql 접속
Oracle Cloud 계정 생성
계정 생성을 위하여 아래 홈페이지를 방문한다.
https://www.oracle.com/kr/cloud/
Oracle Cloud Tier 무료체험하기 버튼을 클릭하여 계정을 생성한다. (계정 생성을 위해서는 주소, 모바일 인증 그리고 신용카드 등록이 필요하다.)
계정 생성이 완료되면 자동으로 클라우드 서비스 관리를 위한 웹 콘솔로 이동된다.
인스턴스 생성하기
웹 콘솔에서 VM 인스턴스 생성 을 클릭한다.
OS 이미지는 디폴트로 Oracle Linux 선택되어 있지만 변경이 가능하고 평소 사용하던 CentOS 를 선택하였다.
리눅스 인스턴스의 경우는 원격 접속을 위하여 비밀번호 대신 SSH 키쌍을 사용하도록 되어 있다. 원격 접속 작업을 위하여 전용 키를 다운로드 한다.
인스턴스 생성이 완료되면 IP 와 계정을 확인 한다.
리모트 접속
리모트 접속은 인스턴스 생성 과정에서 다운로드한 SSH 키파일, 아이디 그리고 IP 를 이용하여 아래와 같이 접속할 수 있다. 개발 환경이 맥을 사용하고 있어 내장된 ssh 프로그램을 사용하였다.ssh -i [키파일 경로] [아이디]@[IP]
MySQL 을 yum 명령을 사용하여 설치하게되면 (실제) MariaDB 가 설치된다.
sudo yum install mysql
ssh -i ssh-key-2020-10-03.key opc@xxx.xxx.xxx.xxx The authenticity of host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)' can't be established.
ECDSA key fingerprint is SHA256:cb0AAC47vug6I8sNC7NPaIswm1+Xulwx8SAATP9D4+c. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added 'xxx.xxx.xxx.xxx' (ECDSA) to the list of known hosts.
MySql 설치
sudo yum install mysql
sudo yum install mysql Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirror.kakao.com * epel: d2lzkl7pfhq30w.cloudfront.net * extras: mirror.kakao.com * updates: mirror.kakao.com Resolving Dependencies --> Running transaction check ---> Package mariadb.x86_64 1:5.5.65-1.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ======================================================================================================================================== Package Arch Version Repository Size ======================================================================================================================================== Installing: mariadb x86_64 1:5.5.65-1.el7 base 8.7 M Transaction Summary ======================================================================================================================================== Install 1 Package Total download size: 8.7 M Installed size: 49 M Is this ok [y/d/N]: y Downloading packages: mariadb-5.5.65-1.el7.x86_64.rpm | 8.7 MB 00:00:01 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : 1:mariadb-5.5.65-1.el7.x86_64 1/1 Verifying : 1:mariadb-5.5.65-1.el7.x86_64 1/1 Installed: mariadb.x86_64 1:5.5.65-1.el7 Complete!필요한것은 MySql Community Edition이기 때문에 설치된 Maria DB 를 삭제한다.
[opc@instance-20201003-1526 ~]$grep -i -e maria mariadb.x86_64 1:5.5.65-1.el7 @base mariadb-libs.x86_64 1:5.5.65-1.el7 @anaconda [opc@instance-20201003-1526 ~]$yum remove mariadb-libs.x86_64 mariadb.x86_64 Loaded plugins: fastestmirror, langpackssudo Resolving Dependencies --> Running transaction check ---> Package mariadb.x86_64 1:5.5.65-1.el7 will be erased ---> Package mariadb-libs.x86_64 1:5.5.65-1.el7 will be erased --> Processing Dependency: libmysqlclient.so.18()(64bit) for package: 2:postfix-2.10.1-9.el7.x86_64 --> Processing Dependency: libmysqlclient.so.18(libmysqlclient_18)(64bit) for package: 2:postfix-2.10.1-9.el7.x86_64 --> Running transaction check ---> Package postfix.x86_64 2:2.10.1-9.el7 will be erased --> Finished Dependency Resolution Dependencies Resolved =========================================================================================================================================================== Package Arch Version Repository Size =========================================================================================================================================================== Removing: mariadb x86_64 1:5.5.65-1.el7 @base 49 M mariadb-libs x86_64 1:5.5.65-1.el7 @anaconda 4.4 M Removing for dependencies: postfix x86_64 2:2.10.1-9.el7 @anaconda 12 M Transaction Summary =========================================================================================================================================================== Remove 2 Packages (+1 Dependent package) Installed size: 65 M Is this ok [y/N]: y Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Erasing : 1:mariadb-5.5.65-1.el7.x86_64 1/3 Erasing : 2:postfix-2.10.1-9.el7.x86_64 2/3 Erasing : 1:mariadb-libs-5.5.65-1.el7.x86_64 3/3 Verifying : 1:mariadb-libs-5.5.65-1.el7.x86_64 1/3 Verifying : 2:postfix-2.10.1-9.el7.x86_64 2/3 Verifying : 1:mariadb-5.5.65-1.el7.x86_64 3/3 Removed: mariadb.x86_64 1:5.5.65-1.el7 mariadb-libs.x86_64 1:5.5.65-1.el7 Dependency Removed: postfix.x86_64 2:2.10.1-9.el7 Complete!MySQL 8.0 Community Edition 설치는 설치 소스에 대한 YUM 레파지토리를 추가하고 진행하면 된다.
[opc@instance-20201003-1526 ~]$ wget http://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm --2020-10-03 08:22:41-- http://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm Resolving repo.mysql.com (repo.mysql.com)... 104.76.84.199 Connecting to repo.mysql.com (repo.mysql.com)|104.76.84.199|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 25820 (25K) [application/x-redhat-package-manager] Saving to: ‘mysql80-community-release-el7-1.noarch.rpm’ 100%[=================================================================================================================>] 25,820 --.-K/s in 0.003s 2020-10-03 08:22:41 (8.12 MB/s) - ‘mysql80-community-release-el7-1.noarch.rpm’ saved [25820/25820] [opc@instance-20201003-1526 ~]$ sudo rpm -ivh mysql80-community-release-el7-1.noarch.rpm 경고: mysql80-community-release-el7-1.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY 준비 중... ################################# [100%] Updating / installing... 1:mysql80-community-release-el7-1 ################################# [100%]
[opc@instance-20201003-1526 ~]$ sudo yum install mysql-server Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirror.kakao.com * epel: d2lzkl7pfhq30w.cloudfront.net * extras: mirror.kakao.com * updates: mirror.kakao.com mysql-connectors-community | 2.5 kB 00:00:00 mysql-tools-community | 2.5 kB 00:00:00 mysql80-community | 2.5 kB 00:00:00 (1/3): mysql-tools-community/x86_64/primary_db | 76 kB 00:00:00 (2/3): mysql-connectors-community/x86_64/primary_db | 62 kB 00:00:00 (3/3): mysql80-community/x86_64/primary_db | 115 kB 00:00:00 Resolving Dependencies --> Running transaction check ---> Package mysql-community-server.x86_64 0:8.0.21-1.el7 will be installed --> Processing Dependency: mysql-community-common(x86-64) = 8.0.21-1.el7 for package: mysql-community-server-8.0.21-1.el7.x86_64 --> Processing Dependency: mysql-community-client(x86-64) >= 8.0.11 for package: mysql-community-server-8.0.21-1.el7.x86_64 --> Running transaction check ---> Package mysql-community-client.x86_64 0:8.0.21-1.el7 will be installed --> Processing Dependency: mysql-community-libs(x86-64) >= 8.0.11 for package: mysql-community-client-8.0.21-1.el7.x86_64 ---> Package mysql-community-common.x86_64 0:8.0.21-1.el7 will be installed --> Running transaction check ---> Package mysql-community-libs.x86_64 0:8.0.21-1.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved =========================================================================================================================================================== Package Arch Version Repository Size =========================================================================================================================================================== Installing: mysql-community-server x86_64 8.0.21-1.el7 mysql80-community 499 M Installing for dependencies: mysql-community-client x86_64 8.0.21-1.el7 mysql80-community 48 M mysql-community-common x86_64 8.0.21-1.el7 mysql80-community 617 k mysql-community-libs x86_64 8.0.21-1.el7 mysql80-community 4.5 M Transaction Summary =========================================================================================================================================================== Install 1 Package (+3 Dependent packages) Total download size: 551 M Installed size: 2.5 G Is this ok [y/d/N]: y Downloading packages: 경고: /var/cache/yum/x86_64/7/mysql80-community/packages/mysql-community-common-8.0.21-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY Public key for mysql-community-common-8.0.21-1.el7.x86_64.rpm is not installed (1/4): mysql-community-common-8.0.21-1.el7.x86_64.rpm | 617 kB 00:00:00 (2/4): mysql-community-libs-8.0.21-1.el7.x86_64.rpm | 4.5 MB 00:00:04 (3/4): mysql-community-client-8.0.21-1.el7.x86_64.rpm | 48 MB 00:00:15 (4/4): mysql-community-server-8.0.21-1.el7.x86_64.rpm | 499 MB 00:01:44 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Total 5.0 MB/s | 551 MB 00:01:49 Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql Importing GPG key 0x5072E1F5: Userid : "MySQL Release Engineering " Fingerprint: a4a9 4068 76fc bd3c 4567 70c8 8c71 8d3b 5072 e1f5 Package : mysql80-community-release-el7-1.noarch (installed) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql Is this ok [y/N]: y Running transaction check Running transaction test Transaction test succeeded Running transaction Warning: RPMDB altered outside of yum. Installing : mysql-community-common-8.0.21-1.el7.x86_64 1/4 Installing : mysql-community-libs-8.0.21-1.el7.x86_64 2/4 Installing : mysql-community-client-8.0.21-1.el7.x86_64 3/4 Installing : mysql-community-server-8.0.21-1.el7.x86_64 4/4 Verifying : mysql-community-server-8.0.21-1.el7.x86_64 1/4 Verifying : mysql-community-client-8.0.21-1.el7.x86_64 2/4 Verifying : mysql-community-common-8.0.21-1.el7.x86_64 3/4 Verifying : mysql-community-libs-8.0.21-1.el7.x86_64 4/4 Installed: mysql-community-server.x86_64 0:8.0.21-1.el7 Dependency Installed: mysql-community-client.x86_64 0:8.0.21-1.el7 mysql-community-common.x86_64 0:8.0.21-1.el7 mysql-community-libs.x86_64 0:8.0.21-1.el7 Complete!
자세한 설치는 CentOS 7.x 에서 MySQL 8.x 설치하기 참조.
사용된 mysql 설정 : /etc/my.cnf데이터베이스 및 계정 생성 스크립트 : database-mysql.sql
VM 인스턴스 공인 IP 및 방화벽 설정
mysql 서버가 설치된 인스턴스를 외부에서 사용할 수 있도록 공인 IP 와 방화벽 설정을 추가했다.
❶ 인스턴스에 공인 IP 를 할당하기 위하여 네크워킹> IP 관리 메뉴에서 새로운 공인 IP 주소를 예약한다. (Reserve Public IP Address)
❸ 컴퓨트 > 인스턴스 > 인스턴스 세부정보 에서 공용 서브넷 을 클릭하여 공용 서브넷 관리 화면으로 이동한다.
디폴트로 생성되어 있는 보안 목록을 클릭하고
MySql 서버에 대한 외부 접속 허용을 위하여 3306 포트에 대한 수신 규칙을 추가한다.
이로써 3306 포트로 외부에서 MySql 서버에 대한 통신이 허용된다.
MySql Workbench 에서 접속한 화면 예시
댓글 없음:
댓글 쓰기