YS's develop story

(Rp2기 2주차 과제 - part 2) AWS EC2를 이용한 ubuntu 서버 구축, WinSCP를 이용하여 AWS 인스턴스에 nginx,php,MySQL 설치 및 DataGrip을 이용하여 MySQL 외부 접속 해보기 본문

기타/라이징프로그래머 2기

(Rp2기 2주차 과제 - part 2) AWS EC2를 이용한 ubuntu 서버 구축, WinSCP를 이용하여 AWS 인스턴스에 nginx,php,MySQL 설치 및 DataGrip을 이용하여 MySQL 외부 접속 해보기

Yusang 2021. 1. 14. 08:37

두 번째 과제

1. AWS EC2를 이용한 ubuntu 서버 구축.

2. WinSCP를 이용하여 AWS 인스턴스에 nginx, php, mysql 설치.

3. datagrip을 이용하여 mysql 외부 접속해보기.

1. AWS 서버 구축

우선 아래 AWS 홈페이지에 들어가서 회원가입을 해 줍니다.

www.google.co.kr/aclk?sa=L&ai=DChcSEwie6-T9o5HuAhXL15YKHceoBLIYABABGgJ0bA&ae=2&sig=AOD64_3Bu9lSLIFsiVFKa6x1DYPz8uIgJw&q&adurl&ved=2ahUKEwinit79o5HuAhWNvZQKHa5eDX0Q0Qx6BAgSEAE

 

AWS 프리 티어

12개월 무료: 이 프리 티어 오퍼는 AWS 신규 고객에게만 제공되며 AWS 가입일로부터 12개월 동안 유효합니다. 12개월의 무료 사용 기간이 만료되거나 애플리케이션 사용량이 프리 티어 범위를 초과

aws.amazon.com

 

EC2 서비스 클릭

 

인스턴스 - 인스턴스 시작

 

 

많은 AMI가 있지만 프리 티어 사용 가능한 Ubuntu Server 18.04 LTS를 선택했습니다.

 

새 키 페어를 생성하고 다운로드를 해 줍시다.

 

아래의 링크에서 PuTTY를 설치해 줍시다.

MSI 64-bit를 설치하면 됩니다. 

https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

 

PuTTY는 대표적인 원격 접속 프로그램입니다.

가장 많이 사용되는 프로토콜인 SSH, Telnet, Serial 등을 지원합니다.

 

Download PuTTY: latest release (0.74)

This page contains download links for the latest released version of PuTTY. Currently this is 0.74, released on 2020-06-27. When new releases come out, this page will update to contain the latest, so this is a good page to bookmark or link to. Alternativel

www.chiark.greenend.org.uk

 

 

 

다음은 Winscp를 아래의 링크에서 설치해 줍시다.

https://winscp.net/download/WinSCP-5.17.9-Setup.exe

 

Downloading WinSCP-5.17.9-Setup.exe :: WinSCP

Problems with the download? Direct download

winscp.net

 

 

Winscp를 실행하여 AWS에서 생성한 인스턴스의 IPv4 주소를 복사하고 호스트 이름에 입력해 줍시다.

사용자 이름은 ubuntu일 경우 ubuntu이기 때문에 이를 입력해 주면 됩니다.

비밀번호는 입력하지 않아도 됩니다.

 

 

또한 고급 - 인증 - 개인키 파일에서 아까 다운로드한 새 키 페어를 지정해 줍시다.!!

 

 

그리고 로그인을 하게 되면 아래와 같은 화면을 확인할 수 있습니다.

AWS로 빌린 ubuntu를 폴더 구조로 확인할 수 있게 된 겁니다~

 

 

그리고 아래의 버튼을 누르게 되면 아래와 같이 터미널 창이 뜨게 됩니다!

 

2. WinSCP를 이용하여 AWS 인스턴스에 nginx, php, mysql 설치 

 

패키지 관리자를 이용해서 nginx를 설치해 줍시다.

sudo apt update
sudo apt install nginx

 

 

nginx를 설치 후 연결이 되었는지 확인을 하고자 AWS의 퍼블릭 IPv4 주소를 복사해서

입력했으나 정상적으로 연결이 되지 않습니다.

그 이유는 AWS 인바운드 규칙에 22번 포트밖에 열려있지 않아서 그렇습니다.

 

 

인바운드 규칙 편집을 통해 HTTP 유형을 추가해 줍니다.

 

 

이제 다시 AWS의 퍼블릭 IPv4 주소를 입력하게 되면 아래와 같이 성공적으로 화면이 출력됩니다.

 

 

이제 mysql을 설치해 줍시다.

그리고 mysql과 nginx가 php와 연결될 수 있도록 하는 php-fpm를 설치해 주어야 합니다.

sudo apt install mysql-server
sudo apt install php-fpm php-mysql

 

아래의 경로로 이동해 ls 명령어를 사용하면 아래와 같은 파일을 볼 수 있습니다.

이것이 우리에게 보이는 html 파일입니다.

아래와 같이 명령어를 입력해서 index.php라는 php 파일을 만들어 줍시다.

cd /var/www/html
sudo vi index.php

 

 

이제 AWS의 퍼블릭 IPv4 주소/index.php를 입력하게 되면 아래와 같이 화면이 출력됩니다.

이제는 phpinfo 파일이 페이지에 뜨도록 연동을 해 봅시다.

 

 

아래 명령어를 통해 파일을 조금 수정해 봅시다.

sudo vi /etc/nginx/sites-available/default

 

파일을 내리다 보면 기본 root html로 설정된 파일을 볼 수 있습니다.

이 파일을 변경한다면 메인으로 보이는 파일을 변경할 수 있겠죠?

 

 

우리가 수정해야 할 부분은 이 부분입니다 

아래와 같이 주석을 없애주고 버전을 바꿔 줍시다.

 

설정 파일을 바꾸었으니 nginx를 재시작해줍니다.

nginx를 재시작하는 명령어입니다.

sudo service nginx restart

 

IPv4 주소/index.php를 다시 입력하면...

아래와 같이 성공적으로 화면이 출력됩니다!!

 

3. datagrip을 이용하여 mysql 외부 접속해보기

 

데이터 베이스를 효과적으로 다루기 위한 IDE DataGrip을 아래에서 다운로드합시다.

학생 메일을 등록하면 무료로 사용할 수 있으니 학생 등록을 하시고 사용하면 됩니다.

https://www.jetbrains.com/ko-kr/datagrip/

 

DataGrip: JetBrains가 만든 데이터베이스 및 SQL용 크로스 플랫폼 IDE

JetBrains에서 선보이는 macOS, Windows, Linux 기반의 강력한 SQL용 IDE입니다.

www.jetbrains.com

 

AWS의 인바운드 규칙 편집을 통해 MYSQL 포트를 열어 줍니다.

참고로 저는 3306이 아닌 다른 포트를 열었다가 왜 연결이 안 되는 거지 하고 한참을 헤맸습니다. ㅠㅠ

 

MySQL을 설치하면 기본적으로 로컬에서만 접속이 가능하고 외부에서는 접속이 불가능하게 되어 있기 때문에 MySQL의 설정을 변경해야 합니다.

 

MYSQL 사용자를 추가하고 권한을 부여해야 합니다.

아래를 참고해서 사용자를 생성하고 권한을 부여하였습니다.

Ubuntu에서 MySQL설치, MySQL 사용자 생성, 확인 및 권한 부여하기

 

Ubuntu에서 MySQL설치, MySQL 사용자 생성, 확인 및 권한 부여하기

ctrl alt t를 눌러 터미널 창을 실행 후 아래의 명령어 입력.. apt-get update apt install mysql-server 아래와 같이 설치 과정을 거쳐서... 루트 계정의 비밀번호 설정 아래의 명령어로 MySQL접속, 비밀번호..

yusang.tistory.com

 

아래와 같이 명령어를 통해 사용자 아이디를 생성하고 권한을 부여 해 줍시다...!

create user '생성할사용자아이디'@'%'identified by '사용자비밀번호';
grant all privileges on *.* to '사용자아이디'@'%' identified by '사용자비밀번호';
flush privileges;

 

MYSQL 설정 파일을 수정해야 합니다.

아래와 같이 명령어를 입력한 후 bind-address 부분을 주석 처리해줍시다.

 

DataGrip에서 아래와 같이 새로운 Data Source를 생성해 줍시다.

 

인스턴스의 ip주소를 입력하고, 생성한 MySQL 사용자와 암호를 입력해 주고 Test Connection을 진행합시다.

Test Connenction이 성공적으로 된다면, OK를 눌러 성공적으로 MySQL의 외부 연결을 할 수 있습니다.

 

포트를 열어주고, 권한을 부여하고 MYSQL 파일을 수정한다면 

아래와 같이 성공적으로 Data grip과 MYSQL이 연결되는 것을 볼 수 있습니다. 

 

STUDY라는 데이터베이스를 만들고 show databases라는 쿼리를 날려봅시다.

외부 연결이 성공적으로 되었다면 아래와 같이 화면이 출력 됩니다.

 

Comments