Server

AWS 서버를 구축해보자. (EC2) -서버구축일대기2

유쾌한고등어 2023. 1. 2. 17:32

드디어...! AWS서버를 구축해보도록한다^^

이번시간에 해볼것들은..

 

!AWS 서버 구축

Linux + Nginx PHP MySQL
- 외부에서 접속하기: phpinfo 띄우기
- MySQL 외부에서 접속하기 (DataGrip or Workbench)
- phpMyAdmin 설치
- Domain 적용 (가비아, 후이즈 ... 구입)
- HTTPS 적용 (let's encrypt)
- Sub Domain 적용 (Dev, Prod)
- Redirection 적용 (IP to Domain, http → https)

흠...서버구축이 뚝딱뚝딱 엄청간단하진않다.

하지만 늘그렇듯 차근차근...하나하나 해보자고!

 

가장먼저  AWS 에 먼저 회원가입을 한다. 회원가입시 1년간 프리티어를 이용할 수 있기때무네...가입이완료되면

 

1,AWS region을 서울로 설정해준다. 까먹지말자!

2.EC2를 이용한 우분투 서버구축은 아래글들을  참고하여 설정해주었다.

(feat.기왕하는김에 서버구축(4)까지쭉따라하장)

 

https://velog.io/@juwon9733/AWS-EC2%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%84%9C%EB%B2%84-%EA%B5%AC%EC%B6%95Ubuntu-18.04

 

AWS EC2를 이용한 서버 구축(Ubuntu 18.04)

aws 서비스를 이용하기 위해서, 일단 회원가입 절차를 진행해준다.처음 가입하면 12개월 동안 프리이터 서비스 내에서 무료로 사용이 가능하다.Amazom EC2서비스는, 가상 서버를 구축하고 보안 및

velog.io

https://luminitworld.tistory.com/81

 

2-2 AWS에 Nginx, MySQL, PHP 구축

서버 구축 방법에는 크게 두 가지가 있습니다. 1. 온프레미스 (하나의 건물) 2. 클라우드 (호텔) 온프레미스 방식은 보다 물리적으로 서버 자체를 새것으로 통으로 임대하는 방식입니다. 온전히

luminitworld.tistory.com

https://velog.io/@newon-seoul/AWS-EC2Ubuntu-OS%EC%97%90-Nginx-mySQL-php-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0

 

AWS EC2(Ubuntu OS)에 Nginx-mySQL-php 설치하기

목표는 EC2, Ubuntu 기반 OS에 Nginx, mySQL, php 를 설치이다.

velog.io

https://velog.io/@juwon9733/AWS-EC2-%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4%EC%97%90-Nginx-%EC%84%A4%EC%B9%98-%EB%B0%8F-http-%EC%A0%91%EC%86%8D-%ED%99%95%EC%9D%B8

 

AWS EC2 인스턴스에, Nginx 설치 및 http 접속 확인

ssh 접속을 통해, AWS EC2 인스턴스에 접속해준다.설치에 앞서, sudo를 계속 쳐주기에는 귀찮아서sudo su 명령어를 통해 관리자 권한으로 변경하였다.다음의 명령어를 통해 apt를 update 해준다.다음의

velog.io

 

https://blogshine.tistory.com/322

 

[AWS] EC2에 MySQL 설치하기

다른 여타 어느 블로그의 글 보다 자세하게 설명 하였습니다. 도움이 될 수 있길!!! 총 3개의 글 시리즈로 작성할 것 입니다!! 1. EC2 인스턴스 만들기 (이전 글) 2. AWS의 EC2에 MySQL을 설치하고, Sequal A

blogshine.tistory.com

너무나 친절한 블로그 길잡이분들...^^정리 짱이다..

(사실 내가 일일히 봤던 것과 썼던 명령어들을 정리할까 했지만...거의 블로그글들 복사 붙여넣기수준이기에....깔끔하게

내가 구축하면서 공부한 블로그들을 링크하겠다.)

 

3.EC2생성후엔,winscp를 설치해준다. 

:winscp는 클라이언트프로그램이다.이를 통해 내가 생성한 aws인스턴스에 접근할 수 있다!

:이 프로그램을 깔고 SFTP/공인aws서버 ip주소/ubuntu + keypair 개인키 로그인을 해준다.

 

설치는 여기서 진행함.

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

 

Downloading WinSCP-5.21.6-Setup.exe :: WinSCP

Problems with the download? Direct download

winscp.net

 

4.winscp 서버접속후 Nginx, PHP(PHP-FPM), MySQL을 설치해준다.(패키지 설치 진행)

아니근데 Nginx가뭔데? 나 처음써본다고!!!!!

그래서 명령어를 서치해봤다...아래블로그참조!

 

https://gongzza.github.io/linux/how-to-control-nginx/

 

명령어로 NGINX 컨트롤하기

NGINX CLI를 이용해서 어떻게 컨트롤을 하는지 알아봅니다. Version현재 설치되어 있는 NGINX 버전입니다. 12$ nginx -vnginx version: nginx/1.12.2 Starting시작 명령어는 간단합니다. 1234$ nginx$ ps -ef | grep nginxroot 2

gongzza.github.io

https://phoenixnap.com/kb/nginx-start-stop-restart

 

How to Start, Stop, and Restart Nginx Web Server

Start, stop, and restart Nginx are the most common tasks you will need to perform if managing an Nginx server. Do it the EASY way with this guide.

phoenixnap.com

 

 

https://www.linode.com/docs/guides/how-to-enable-disable-website/

 

Enable and Disable a Website Running on Apache or NGINX

This guide explains how to quickly disable a website running on Apache or NGINX, along with what's involved in re-enabling it.

www.linode.com

위에 다읽으니까 납득가능해짐.

대충 경량 웹서버고 was 서버 줄여줘서 좋다함.

Apache의 단점보완. 

 

 

5.MYSQL 외부(workbench)에서 접속하기!

:mysql 워크벤치 설정은 아래를 참고하였음

 

https://devkingdom.tistory.com/84

 

[AWS] AWS EC2 인스턴스 (Ubuntu) 에서 MySql 세팅하기

하이 ~~!! 이전의 포스팅에서 우리가 EC2 인스턴스를 만든 거 기억하실거다. ubuntu로 만들었는데 오늘은 여기다가 mysql을 세팅해볼 거다. Ubuntu에 MySql 세팅하기 먼저 apt를 업데이트 해주자. 그러고

devkingdom.tistory.com

https://kugancity.tistory.com/entry/ec2-mysql-%EC%82%AC%EC%9A%A9%EC%9E%90-%EC%B6%94%EA%B0%80-workbench-%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95

 

ec2 - mysql 사용자 추가 & workbench 환경 설정

mysql 설치가 끝난후 mysql workbench를 설치해서 접속 환경을 설정하려고 합니다. 그전에 root로 외부에서 접속하는 것은 보안상 그러니까 새로운 계정을 먼저 터미널에서 생성 합니다. mysql> create user

kugancity.tistory.com

 

 

 

6.PHPMyAdmin을 설치한다

걍 명령어 한줄 ㄱㄱ

 

7.Domain적용해 개인서버구축! (feat.가비아)

가비아에서 도메인을 550원에 구매하자!(feat.부가세...)

 

도메인설정을 따라한다.아래블로그 정리 너무 잘되어있음.굳 감사합니다!

https://suyeoniii.tistory.com/77

 

[Nginx][EC2] 도메인 연결, https 적용, 서브도메인 설정

새 프로젝트를 시작하면서 또다시 반복되는 서버 세팅...^-^ 매번 같은 작업을 반복하다보니 따로 정리해두면 좋을거 같다고 생각이 들었다 도메인연결 가비아에서 도메인은 구입해둔 상태이다!

suyeoniii.tistory.com

순 조 롭 다 !

이렇게 잘깔릴땐 기분이 좋다.하하하

그렇게 앞으로 다가올 에러를 모른채....

 

 

8.HTTPS를 적용한다(lets encrypt)

근데이거 정리하면서보니까 나중에 서브도메인 설정하고 한번에 하는게 더 나을것같다.

그래서 일단 패쓰.

 

9.서브도메인적용(dev,prod)

여기서 시간많이들고 애먹었는데 root폴더를 따로생성후 경로 설정을 하고 접속을 했는데 아무리다시해봐도

해당페이지가 안나오는거다.아이거왜이러지...하다가 https 보안 주소설정때문이란걸깨달았다.

 

prod.도메인주소 하니까 설정한 루트폴더 잘만 나온다.

 

sudo certbot --nginx -d 도메인명

 

 

https://velog.io/@vector13/EC2-%EC%84%9C%EB%B2%84%EC%97%90-domain-%EC%A0%81%EC%9A%A9-%EA%B0%80%EB%B9%84%EC%95%84-EC2-nginx-HTTPS-%EC%A0%81%EC%9A%A9-lets-encrtpt-SubDomain%EC%A0%81%EC%9A%A9-Redirectionip-to-domain

 

EC2 서버에 domain 적용 (가비아) & EC2 nginx HTTPS 적용 (lets’ encrtpt) & SubDomain적용 & Redirection(ip to domain)

가비아에서 vectordev 검색하고 500원 주고 .shop 구입 MY가비아 → 관리→ DNS 정보 , 도메인 연결 설정 클릭 → DNS 레코드 추가 TTL(Time to live)는 3600 주었음 저장 후 (https://www.vectordev.sho

velog.io

 

https://jminie.tistory.com/105

 

AWS Nginx 서브 도메인 및 Domain Redirection 적용

📌 ip란? 인터넷에 연결되어 있는 장치(컴퓨터, 스마트폰, 타블릿, 서버 등등)들은 각각의 장치를 식별할 수 있는 주소를 가지고 있는데 이를 ip라고 한다. 📌 도메인이란? ip는 사람이 이해하고

jminie.tistory.com

 

https://chaem0215.tistory.com/24

 

도메인 연결과 서브 도메인

도메인 적용 도메인은 가비아에서 구매하였다. DNS 관리로 들어가서 AWS EC2 인스턴스에서 퍼블릭 IPv4 주소를 A타입 레코드로 설정하여 추가해준다. 서브도메인은 CNAME 타입을 이용하여 dev와 prod를

chaem0215.tistory.com

https://luminitworld.tistory.com/86

 

2-7 Ubuntu Nginx 서브 도메인 및 Domain Redirection 적용

도메인이란 ip는 사람이 이해하고 기억하기 어렵기 때문에 이를 위해서 각 ip에 이름을 부여할 수 있게 했는데, 이것을 도메인이라고 합니다. 기본 도메인 : 처음에 신청한 기본 웹서버의 이름 (

luminitworld.tistory.com

8. 도메인에 HTTPS인증적용하기!

 

https://wikidocs.net/164372

 

4-16 SSL

이제 브라우저에서 고정 IP 대신 도메인을 입력하여 서버에 접속할수 있게 되었다. 하지만 브라우저의 주소창을 보면 다음과 같이 주의 요함 이라는 경고 메시지가 표시된다. !…

wikidocs.net

 

10. Redirection 적용 (IP to Domain)

아이피주소를 입력했을때 내가 구매한 도메인주소로 리다이렉트해주는 설정이다.

걍 서버 한블록만 설정에 추가해주면된다.매우간단!

 

https://hyooi.github.io/%EC%84%9C%EB%B2%84/2021/12/02/nginx-ip-to-domain.html

 

Nginx ip접속 시 도메인 강제 리다이렉트

1. 개요 이전 포스트인 Nginx http to https 강제 리다이렉트와 합치려다가, 별도의 포스트로 분리하면서 분량이 많이 적어졌다.

hyooi.github.io

https://10000sukk.tistory.com/29

 

Nginx 에서 (IP to Domain) redirection

IP 를 url 로 입력 하였을때 바로 domain 으로 redirect 하고 싶다면 서버 설정에서 서버 아이피를 listen 하고 있는 부분에서 ip가 들어오면 이를 도메인으로 바꿔 주던가 아니면 도메인을 반환해 주면

10000sukk.tistory.com

 

 

 

 


그외설정들...

짜잘하게 설정한것과 에러 참고사항은 여기다정리한다.

 

1.사용자 루트권한부여

https://kyungsnim.net/176

 

리눅스(CentOS, Ubuntu) 환경에서 루트 권한주는 방법

일반 사용자에 root 권한을 부여하는 방법에 대해 알아보자. 터미널 환경에서 $ 로 시작하면 일반유저이고, # 로 시작하면 관리자 이다. 우리는 $ -> # 로 변경하는 방법에 대해 알아볼 것이다. #1.

kyungsnim.net

 

2. nginx conflicting error 오류해결

https://zosystem.tistory.com/152

 

nginx error (conflicting server name "xxx.xxx.co.kr" on 0.0.0.0:80, ignored 오류 해결

nginx config파일에 server_name설정이 두군데 이상 명시되어 있을경우 발생합니다. config파일에서 중복된 server_name을 찾아서 주석처리하면 해결됩니다. # cd /etc/nginx/conf.d # vi custom.conf

zosystem.tistory.com

 

 

3. Unable to load key file ppk에러해결

:Putty Keygen으로 SSH-KEY설정

https://blog.naver.com/PostView.naver?blogId=bb_&logNo=222754706255&redirect=Dlog&widgetTypeCall=true&directAccess=false 

 

[Putty] Unable to load key file ppk (PuTTY key format too new)

[Putty] Unable to load key file ppk (PuTTY key format too new) SSH 키 파일(확장자 ppk)을 통...

blog.naver.com

https://jigrid.tistory.com/2

 

PuTTY Gen으로 SSH-KEY 생성하기 (Windows 기준)

PuTTY다운로드http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html 설치 후 PuTTYgen 실행1. Generate 버튼 클릭하세요. 2. 마우스를 마구 흔들어주세요. (마우스 쿼서로 난수생성) 3. Save public Key 버튼과 Save P

jigrid.tistory.com

 

4.ls -s 로 도메인명령 설정을 잘못해주어서 ...해당디렉토리및파일이 없다고 에러가나서, 아래에서 available에서 해당 명령해당하는것 rm해주었다.

https://jjeongil.tistory.com/1832

 

Linux : Nginx 시작, 중지, 재시작 방법, 예제, 명령어

"엔진 x"로 발음되는 Nginx는 인터넷에서 가장 큰 일부 사이트의 부하를 처리하는 무료 오픈 소스 고성능 HTTP 및 리버스 프록시 서버입니다. 독립 실행형 웹 서버 또는 Apache 및 기타 웹 서버의 역방

jjeongil.tistory.com

 

 

5. 편하게 쓰기위해서 wscp editplus랑 에디터 연동해주기

https://gocoder.tistory.com/64

 

winSCP - 기본 에디터 변경

winSCP 파일 홈에디터플러스로 열기 winSCP에서 파일을 클릭하면 Internal Text Editor가 기본적으로 작동합니다.의외로 쓸만하고 가볍고 좋습니다. ▼Internal Text Editor 에디터https://winscp.net/eng/docs/ui_editor?

gocoder.tistory.com

 

6.ubuntu20 sudo cerbot --nginx certonly명령어

Issue using certbot with nginx

 

Issue using certbot with nginx

I'm actually working on a webapp, I use Reactjs for the frontend and Golang for the backend. Those 2 programs are hosted separately on 2 VMs on Google-Compute-Engine. I want to serve my app through...

stackoverflow.com


근데 다 하고나니까..내 1월1일이 끝났다...

게다가 몸도 너무 아파서ㅠㅠ힘들었음....1월1일에 이렇게

아플일이냐며...액땜한다 호호...

 

 

그래도 나의 첫 서버구축 끄읏...!

처음 이것저것명령어찾아보고 폴더구조보느라

좀오래걸렸지만,처음이 어렵다고 이제 다시 서버구축하라하면

금방할것같다.!

 

다음엔 RDS를 EC2와 연동해보겠다....