[부트캠프][2주차]AWS EC2 Domain적용, HTTPS 적용

이호석·2022년 6월 16일
1

부트캠프

목록 보기
6/11

부트캠프 2주차 AWS EC2 접속
2주차의 남은 과제는 AWS EC2의 Mysql 외부접속, phpMyAdmin 설치, Domain 적용, HTTPS 적용이다.

1. Mysql 외부접속

DataBase 접속 도구를 DataGrip로 선정했다. 이유는 JetBrains의 S/W들은 대학생 이메일이 있다면, 유료버전을 무료로 사용할 수 있어서, 기존에 써본 경험이 있기 때문이다.

DataGrip을 설치했다면 File -> new -> DataSource -> Mysql 클릭

Host에는 퍼블릭 IPv4 주소, User에는 따로 계정을 만들지 않았다면 root, 비밀번호 입력을 한 다음에 Test Connection을 눌러서 완료가 될 뻔했는데, Ubuntu 기반의 Mysql은 지난번 Grant 명령어로 외부 접속을 허용한 것 말고도 설정이 더 필요하다.

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
#bind-address = 127.0.0.1
bind-address = 0.0.0.0

127.0.0.1 부분을 주석처리하고 어디서든 접속을 허용하는 코드를 추가한다.

sudo service mysql restart

Mysql을 재시작해주고 DataGrip에서 Test Connection을 누르면

Mysql 외부접속 완료

2. phpMyAdmin

phpMyAdmin 설치

sudo apt update
sudo apt install phpmyadmin

명령어를 입력하면 다음과 같은 화면이 나오는데 Ngnix가 없으므로 Tab키를 눌러 OK에서 Enter를 누른다.

이미 Mysql을 설치했기 때문에 No 클릭하면 설치가 완료된다. (Yes클릭해도 문제는 없긴하다..)

phpMyAdmin 접속

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

현재 커서가 있는 줄에 위 사진처럼 index.php를 추가해준다.

sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
sudo service nginx restart

그런 다음 Ngnix가 phpMyAdmin을 사용할 수 있게 심볼릭 링크를 생성해준다. 심볼릭 링크는 윈도우의 바로가기 생성과 비슷한 개념이다. 그리고 Nginx를 재시작한다.

브라우저 검색창에 [퍼블릭 IPv4 주소/phpmyadmin/phpinfo.php]를 입력하면

다음 화면이 나오는데 Mysql유저를 생성하지 않았다면 root 계정으로 접속하면 된다.

위와 같은 화면이 나오면 접속 성공!

3. Domain 적용

Domain 서비스를 제공해주는 사이트중 가비아를 선택하였다.
가비아에서 도메인을 구입한 다음(.shop 추천 550원의 가격) My가비아 페이지로 온다.

DNS관리툴을 누르고

설정을 클릭

DNS 설정 - 레코드 수정 - 레코드 추가를 눌러서 타입은 그대로, 호스트에는 www, 값/위치에는 퍼블릭 IPv4 주소를 입력한다. 또 하나를 추가할 건데 호스트만 @로 해주고 나머지는 같은 값이다.

브라우저 검색창에 설정한 Domain을 입력하면

Domain 적용 완료!

4. HTTPS 적용

HTTP는 보안 이슈가 있으므로 HTTPS를 사용해야한다.
HTTPS를 사용하기 위해서는 SSL을 발급해야 하는데 이 SSL인증서를 무료로 발급해주는 비영리 기관이 Let's Encrypt이다.

먼저 AWS EC2의 인바운드 규칙에서 HTTPS(443) 포트를 허용해준다.

Certbot 설치

sudo apt update
sudo apt upgrade
sudo add-apt-repository ppa:certbot/certbot
sudo apt install python3-certbot-nginx

Let's encrypt에서 제공하는 certbot을 설치한다.

도메인 설정

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

도메인 설정을 위해 위 파일을 열어서 server_name 옆에 example.com www.example.com를 추가한다.

sudo service nginx restart

Nginx를 다시 재시작해준다.

SSL 인증서 발급

sudo certbot --nginx -d example.com -d www.example.com

사이트에 HTTP로 접근시 HTTPS로 redirect(2번)를 할건지 설정한다.

sudo service nginx restart

다시 한번 서버를 재시작해주면

url 왼쪽에 좌물쇠가 걸려져있는 것을 확인할 수 있다.

마치며

사실 HTTPS 설정 부근에서 에러로 인해 낑낑대고 있었는데, 쉬었다가 해야지하고 30분뒤에 다시 sudo certbot --nginx -d example.com -d www.example.com 명령어를 실행하니 제대로 동작하였다. 건드린 부분은 가비아 레코드 추가에 www 말고 @를 추가했다는 것과 /etc/nginx/sites-available/default 파일 수정했다가 다시 원상복구 한 것 뿐인데, @를 추가한 것이 오류 해결과 직접적으로 연관이 있는지 모르겠다.

0개의 댓글