구현과정🚊
1. AWS EC2 인스턴스 생성

- AMI(Amazon Machine Image) 설정 : 서버에서 사용할 OS를 설정
- 이전 virtual box에서 서버를 구축하기 위해 virtual machine image를 다운 받아 사용하였는데 이와 유사하다.
1-2. 인스턴스 유형 선택

- 프리티어 계정을 사용할 경우 무조건 l GIB 메모리를 주는 t2 유형을 사용해야 한다.
1-3. 키 페어 생성

- 키 페어를 생성하여 로컬 pc내에 다운 받는다.
- 노트북과 데스크탑 모두에서 사용하기 위해 현재 OneDrive에 저장해 두었다.
- .pem 확장자를 띈다.
- 기존에 키 페어를 생성하였다면 생성하지 않고 기존 걸 사용해도 된다.
1-4. 보안 규칙 설정

- AWS에서 빌린 컴퓨터에 접속하여 명령을 통해 조작하려면 SSH 프로토콜을 사용하여 22번 포트로 접속해야 한다.
1-5. 생성 완료

- 퍼블릭 IPv4 : 인스턴스에 부여된 IP 주소를 의미
- IPv4와 IPv6 : 예전에는 32bit로 구성되어 약 43억개의 IP 주소를 생성할 수 있는 IPv4를 사용하였지만 전 세계에 IP 주소를 필요로 하는 컴퓨터가 늘어 IPv4로 모든 컴퓨터의 IP 주소를 감당하긴 힘들어져 IPv6가 등장하였지만 IPv6는 IPv4와 하위 호환성을 제공하지 않고 일반 사용자에게 이점이 눈에 잘 보이지 않아 상업성이 떨어지는 한계를 갖고 있다.
- 보안 그룹 이름 : 인스턴스 생성 시 지정했던 보안 그룹
- 키 이름 : 인스턴스 생성 시 지정했던 키 이름
2. WinSCP 설치
- Windows용 GUI이자 파일 전송 시 사용하는 프로토콜인 SFTP 및 FTP를 사용하는 클라이언트 프로그램이다.
- 로컬 컴퓨터와 원격 컴퓨터(EC2) 간에 안전하게 파일을 복사 및 전송할 수 있다.
2-1 WinSCP에 새 사이트 추가

- 파일 프로토콜 : EC2와 파일을 주고 받을 거기 떄문에 SFTP 프로토콜 사용
- 호스트 이름 : 생성한 인스턴의 IP 주소(IPv4) 입력
- 사용자 이름 : 이 사이트에서 설치한 AMI에 따른 기본 사용자 이름을 확인할 수 있다.
- 필자의 경우에는 Ubuntu를 사용하므로 ‘ubuntu’ 입력
2-2 고급 설정에서 키 페어 파일 올리기

- 파일 검색 시 모든 파일로 해야 처음에 key pair가 보이게 된다.
- WinSCP는 key pair를 PuTTY 형식만 지원하기에 변환 후 저장
2-3 로그인 후 AWS에 빌린 인스턴스의 폴더 구조를 확인

- 왼쪽이 내 로컬 PC, 오른쪽이 EC2 인스턴스
2-4 Putty 설치 후 WinSPC에서 표시한 버튼을 클릭하여 실행

- Putty를 통해 로컬 PC에서 터미널을 통해 실행할 명령을 입력하듯이 EC2에 실행할 명령을 입력한다.
3. 인바운드 규칙 편집

- SSH : 관리자로 서버를 사용할 시 22번 포트로 접속
- HTTP : 클라이언트로 서버를 사용할 시 80번 포트로 접속
4. NginX 설치
sudo apt update
sudo apt install nginx

- NginX 설치 후 인스턴스의 IP 조소를 웹브라우저에 입력하면 위와 같이 niginx가 무사히 설치된 걸 확인할 수 있다.
5. MySql 설치
sudo apt install mysql-server
sudo mysql_secure_installation
- ‘Please consider using ALTER USER instead if you want to change authentication parameters.’ 오류 발생
-
mysql_secure_installation을 실행중인 터미널을 끈다.
-
다시 터미널 창을 킨 후 sudo mysql
명령을 통해 mySql 실행
-
아래 명령을 통해 root 사용자의 비밀번호를 변경
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '새로운비밀번호'
- 실행 모습

6. PHP 설치
sudo apt install php-fpm php-mysql
cd /var/www/html
sudo vi index.php
sudo vi /etc/nginx/sites-available/default
sudo vi nginx restart
php-fpm
: Nginx와 PHP 연동
php-mysql
: Nginx와 MySql연동
/etc/nginx/sites-available/default
: 이 파일에 niginx 관련 설정 내용이 들어있다.
6-1 PHP 설치 시 발생한 오류

- 이러한 에러가 뜬다면
journalclt -xe
명령을 입력

- 첫 줄을 확인하면 파일의 92번째 줄에
}
가 빠져있다는 문구가 보인다.
- vi로 중괄호를 닫아주면 오류 해결
참고 자료
https://velog.io/@oyeon/AWS-서버-구축-외부-접속
https://nordvpn.com/ko/blog/ipv4-ipv6-bigyo/
https://masssal.tistory.com/3
https://seong6496.tistory.com/322
https://luminitworld.tistory.com/81