AWS를 활용하여 서버 구성하기
2023-05-02 업데이트
1. EC2 인스턴스 생성
- [인스턴스] 탭 클릭 (인스턴스 위치: 서울)
- 인스턴스 시작 버튼 클릭
- [이름 및 태그] 에서 인스턴스 이름 설정 하기
- [애플리케이션 및 OS 이미지] 에서 ubuntu 설정하기
- [인스턴스 유형]에서 프리티어 기준 t2.micro 선택
- [키 페어] pem을 사용하여 키페어 사용(보안에 신경 쓸것)
- [네트워크 설정] 보안그룹을 활용 SSH 트래픽은 모두 허용하기 보다는 내 PC의 IP를 등록하여 사용 권장
- [스토리지 구성] 프리티어로 최대 30Gib 까지 이용 가능
- 인스턴스 시작

2. 탄력적 IP 구성
탄력적 IP 생성
- [네트워크 및 보안] 탭 클릭
- [탄력적 IP 주소 할당] 버튼 클릭
- 추가적인 설정 없이 [할당] 버튼 클릭

인스턴스에 IP 할당
- 생성된 탄력적 IP 주소에 기존에 생성한 인스턴스 할당
- 프라이빗 IP 주소 선택
- [탄력적 IP 주소 연결]을 이용하여 기존에 만들어준 EC2 인스턴스와 연결해 준다. ( 프리티어 기준 1개 까지 이용 가능, 연결해주지 않을시 과금 발생 가능)

3. 보안 그룹
- 인스턴스를 구성하면서 생성한 보안 그룹에 접속
- 인바운드 규칙 수정
- 사용자 지정 TCP - 8080 포트를 규칙 추가 (내 IP )
- HTTP/HTTPS 의 모든 IP주소를 열어준다.
- SSH - 22 접속 IP로는 내 IP만 열어준다.
- (추가) 인스턴스에 접속하기 위한 추가 IP를 SSH에 추가

4. 인스턴스 접속(window)
-
윈도우 접속의 경우 putty를 사용하여 접속하여야 한다.
-
WinSCP 설치
-
Putty 설치
-
세션을 추가해 준다.
호스트 이름: 인스턴스의 탄력적 IP 주소를 입력해 준다.
사용자 이름: 인스턴의 기본 이름(ubuntu)

-
고급탭 → SSH → 인증 → 개인키 파일 에서 기존에 저장한 pem키를 ppk로 변환하여 등록하고 확인 버튼을 눌러준다.
(pem → ppk 변환은 puttygen을 활용할 수 있다. 모든 파일에서 .pem
파일을 선택하고 등록하면 간단하게 변환해준다.)

잠깐!!
Docker을 사용해서 배포한다면 여기까지만 해도 됩니다!!!
5. nginx, mysql, php 설치
가. apt 업데이트
나. nginx 설치
sudo apt install nginx
nginx -v
(nginx 설치 버전 확인)
다. mysql 설치
sudo apt install mysql-server
mysql secure 구성
sudo mysql_secure_installation
- Disallow root login remotely는 외부 접속을 위하여 ‘n’ 체크,
이외의 항목은 ‘y’로 허용
라. php 설치
php-fpm, php-mysql 설치
sudo apt install php-fpm php-mysql
6. nginx - php 연동
- php 기본 폴더 위치 이동
- php 기본 예제 파일 생성
- sudo vi phpinfo.php
php 파일 생성
```php
<?php
phpinfo();
?>
```
- nginx - php 연결
- nginx 기본 폴더 위치 이동
cd /etc/nginx/sites-available
- nginx 설정 파일 열기
sudo vi default
- nginx default 파일 설정

php 연동을 위하여 파일 설정
- include 주석 해제
- fastcgi_pass 주석 해제 및 php 버전 수정
- php 연동 실패시 추가 설정
- nginx php 호환 추가 설치
- updatedb
- sudo apt install php-curl php-xml php-gd php-mbstring php-mysql
- sudo apt install php-bz2 php-zip php-json php-readline
- php.ini 구성 파일 업데이트
7. 기타 명령어
- nginx 관련 명령어 nginx 수정 후 테스트
- mysql 관련 명령어
- mysql 접속 방법
- mysql restart
sudo service mysql restart
- php 관련 명령어
- php fpm restart
sudo service php8.1-fpm restart
Error Correction

mysql_secure_installation 비밀번호 설정시 오류 메시지 출력
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'mynewpassword';
비밀번호 strength 타입을 medium 혹은 string으로 설정시 설정 변경 방법
- 비밀번호 정책 비밀번호 정책 선택 0 : 길이 8 이하 1 : 길이 8 이하, 숫자, 대/소문자 혼합, 특수 문자 사용 2 : 길이 8 이하, 숫자, 대/소문자 혼합, 특수 문자, dictionary 파일 사용
mysql -u root -p
- mysql>
SHOW VARIABLES LIKE ‘validate_password%’;
- mysql>
SET GLOBAL validate_password.policy=LOW;
- mysql>
exit