[UMC Server] 3주차 - AWS EC2, RDS, Nginx, PHP, MySQL, Domain, https

서요이·2022년 10월 19일
0

UMC Server

목록 보기
3/7
  1. AWS Elastic IP 적용하여 http 외부접속 가능하게 Nginx, php, mysql 설치
  2. RDS로 데이터베이스 (MySQL) 생성 후 외부(DataGrip, Workbench 등)에서 접속가능하게 만들기
  3. domain 연결 (가비아, 후이즈 등)
  4. https 적용(Let's Encrypt)

1. AWS Elastic IP 적용하여 http 외부접속 가능하게 Nginx, php, mysql 설치

1) AWS EC2 인스턴스 생성

인스턴스 생성 - OS 선택 (Ubuntu Server 22.04)

네트워크 설정 - 인바운드 규칙 추가 (ssh)

키 페어 생성

2) winSCP 설치

winSCP 설치 및 사이트 생성 후 로그인

3) nginx 설치

$ sudo apt update
$ sudo apt install nginx

PuTTY 창에서 nginx 설치

HTTP 인바운드 규칙 추가

서버 IP 주소로 접속 - nginx 설치 확인

4) mySQL 설치

$ sudo apt install mysql-server

mysql 설치 확인

5) php 설치

$ sudo apt install php-fpm php-mysql

nginx의 경우, apache와는 다르게 따로 php-fpm을 설치하고 연동시키는 과정이 필요
php-fpm은 웹서버와 외부 프로그램의 상호작용을 도와주는 프로토콜로 php-fpm을 이용하면 동적인 웹 페이지 구현 가능

/var/www/html 경로에 index.php 파일 생성

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

php 모듈 주석 해제

$ sudo service nginx restart
  • 트러블 슈팅
    서버 IP 주소/index.php 접속 시 502 Bad Gateway 에러 발생

    [문제 원인]
    ubuntu 22.04 LTS는 php 8.1 버전을 사용하지만 7.4 버전으로 입력이 되어 있었기 때문에 에러 발생
    [해결 방안]
    /etc/nginx/sites-available/default
    fastcgi_pass unix:/run/php/php8.1-fpm.sock; 으로 수정
    [참고 자료]
    https://ggotji.tistory.com/61

서버 IP 주소/index.php 접속 (외부 접속)


2. RDS로 데이터베이스 (MySQL) 생성 후 외부(DataGrip, Workbench 등)에서 접속가능하게 만들기

1) AWS RDS MySQL 생성

RDS 대시보드 - 데이터베이스 생성

2) 보안 규칙 수정하기

DB 인스턴스 - 보안 그룹 - 인바운드 규칙 편집

MySQL/Aurora 규칙 추가

3) DataGrip으로 외부 접속

MySQL 선택

Host - rds의 엔드 포인트
User, Password - 인스턴스 생성 시 작성했던 마스터 사용자의 이름, 비밀번호

Test Connection 성공

쿼리를 통해 RDS 외부 접속 확인


3. domain 연결 (가비아, 후이즈 등)

1) 가비아에서 도메인 구입

2) DNS 설정

DNS 설정 - 레코드 추가
호스트 - www, @ / 값/위치 - 서버 IP 주소

도메인 주소로 페이지 연결 확인


4. https 적용(Let's Encrypt)

1) certbot 설치

$ sudo snap install certbot --classic

2) SSL 인증서를 적용하여 https 적용하기

$ sudo certbot --nginx -d seoyoee.shop -d www.seoyoee.shop

SSL 인증서 발급 완료

3) nginx 재시작

$ sudo nginx -t
$ sudo systemctl restart nginx

4) EC2 인바운드 규칙 추가

보안 그룹 - 인바운드 규칙 편집 - HTTPS(443) 추가

5) 도메인 접속

https 적용 확인
http로 접속해도 자동으로 https 적용

0개의 댓글