[UMC-Spring Server] Chapter 2. 클라우드 구축

Elmo·2023년 7월 3일
0

UMC-Spring Server

목록 보기
2/3
post-thumbnail

🔥미션

1. 본인의 컴퓨터에 Virtual Machine 설치하여 Linux 가상머신 구축하기

2. Linux 가상머신에 APM 소스 설치하기

😊이전 글 참고

3. AWS EC2 위에 Npm 설치 후 도메인 연결하기

AWS 회원가입 및 로그인 후 EC2에서 인스턴스 생성





인스턴스 생성 후 보안 그룹 규칙 보면 다음과 같이 생성된다

winscp 이용하여 ubuntu 외부 접속

호스트 이름에 아까 생성한 EC2 퍼블릭 ip 주소를 입력 -> 고급 클릭

... 을 눌러서 아까 생성한 키 페어를 찾아야함. 보통 c드라이브-사용자-다운로드 여기에 저장되는 거 같은데, 파일 찾기에서 키 이름 검색해서 찾아도 된당.
처음에 키 생성할 때 pem 형식으로 생성했기 때문에 검색할 때 안나올 수 있다. 이런 경우 모든 파일 혹은 pem 파일 형식으로 찾으면 되고 putty에서 사용할 수 있도록 ppk 파일로 바꿀거냐고 물어보면 예 를 누르면 된당.

Putty를 이용하여 EC2에 NPM 설치하기(ssh 이용)

PuTTY는 SSH, 텔넷, rlogin, raw TCP를 위한 클라이언트로 동작하는 자유 및 오픈 소스 단말 에뮬레이터 응용 프로그램

⚠️ NO supported authentication methods available 에러 발생 해결

하라는 대로 했는데 자꾸 안되길래 해결한 방법
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

⚠️ AWS php nginx 502 Bad Gateway

주석 해제할 때 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로 접속 성공한다.

Let's Encrypt 를 이용해 HTTPS 적용

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로 자동 리다이렉트 되는지 여부를 설정할 수 있다.

profile
엘모는 즐거워

0개의 댓글

관련 채용 정보