AWS 회원가입 및 로그인 후 EC2에서 인스턴스 생성
인스턴스 생성 후 보안 그룹 규칙 보면 다음과 같이 생성된다
winscp 이용하여 ubuntu 외부 접속
호스트 이름에 아까 생성한 EC2 퍼블릭 ip 주소를 입력 -> 고급 클릭
... 을 눌러서 아까 생성한 키 페어를 찾아야함. 보통 c드라이브-사용자-다운로드 여기에 저장되는 거 같은데, 파일 찾기에서 키 이름 검색해서 찾아도 된당.
처음에 키 생성할 때 pem 형식으로 생성했기 때문에 검색할 때 안나올 수 있다. 이런 경우 모든 파일 혹은 pem 파일 형식으로 찾으면 되고 putty에서 사용할 수 있도록 ppk 파일로 바꿀거냐고 물어보면 예 를 누르면 된당.
Putty를 이용하여 EC2에 NPM 설치하기(ssh 이용)
PuTTY는 SSH, 텔넷, rlogin, raw TCP를 위한 클라이언트로 동작하는 자유 및 오픈 소스 단말 에뮬레이터 응용 프로그램
하라는 대로 했는데 자꾸 안되길래 해결한 방법
1.Priate key file for authentication 과 Certificate to use with the privat key 모두 키 등록하기
2. Sesseion으로 돌아가서 포트: 22, SSH, 호스트에 EC2 퍼블릭 ip주소가 아닌 퍼블릭 IPv4 DNS으로 입력하기
3. login as : ubuntu 입력 (혹은 root 입력)
이랬더니 putty로 잘 접속된당.
nginx 설치
$ sudo apt update
$ sudo apt install nginx
자기 EC2 퍼블릭 ip 주소를 검색창에 입력하면 다음과 같은 화면이 뜬다.
mySQL 설치
$ sudo apt install mysql-server
PHP 설치
sudo apt install php-fpm php-mysql
-> php와 nginx를 연동해야되기 때문에 php-fpm 설치가 필요함
PHP와 Nginx 연동하기
(1) /var/www/html 에 index.php 파일 저장
$ cd /var/www/html/
$ sudo vi index.php
<?php
phpinfo();
?>
(2) php 부분 주석을 해제
$ sudo vi /etc/nginx/sites-available/default
주석 해제할 때 php 버전이 다르게 입력되어있어서 문제 발생함
$php -v
자기 php 버전에 맞는 숫자로 php7.4-fpm.sock에서 바꿔준다.
$ sudo service nginx restart
주소창에 EC2 퍼블릭 ip 주소/index.php 검색하면 이렇게 뜬당
Datagrip or Workbench 등으로 Mysql 외부 접속
개인적으로 Datagrip이 더 편해서 사용함
EC2 인스턴스에서 보안 규칙에 mySQL 추가
putty로 접속하여 mysql 접속
sudo mysql -u root -p
mysql 유저 생성하고 권한 부여
create user 'userid'@'%' identified by '비밀번호';
grant all privileges on (database name).* to 'username'@'hostname';
flush privileges;
show grants for 'username'@'hostname';
임시 데이터베이스 생성
create database 데이터베이스명;
show databases;
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
외부 접속 할 수 있도록 bind-address를 0.0.0.0으로 변경
Datagrip으로 들어가서 Mysql 선택
Host : 퍼블릭 ipv4 주소
User : 아까 만든 mysql user 이름
Password : mysql user 비밀번호
도메인 연결하기
가비아 or 후이즈에서 도메인 구매 후 DNS관리 들어가서 설정하기
(빨간색 부분에 EC2 퍼블릭 ip주소 입력)
해당 도메인을 주소창에 검색하면 nginx로 접속 성공한다.
cerbot 설치
sudo snap install certbot --classic
nginx에 도메인 설정
sudo vi /etc/nginx/sites-available/default
ssl 인증서 받기
sudo certbot --nginx -d elmospring.site -d www.elmospring.site
nginx 재시작
sudo service nginx restart
도메인으로 접속 시 https가 적용되어있다.
여길 보면 http 연결을 어떻게 질문하는 부분에서 http에서 https로 자동 리다이렉트 되는지 여부를 설정할 수 있다.