본문 바로가기

Dev. Server/AWS

[AWS] EC2 웹서버 APM 구축하기 (우분투 20.14/ PHP 7.4) - 프리티어 구축 무료


 

1. AWS 회원가입 및 로그인

회원가입을 진행해주시고 로그인해주시면 됩니다.

1년동안은 프리티어를 이용할 수 있습니다. (단, 경우에 따라 요금이 부과될 수 있습니다.)

 

 

 


 

2. EC2 인스턴스 생성

 

 

1) 최상단 우측에 있는 지역은 "서울"로 변경해줍니다.

이어서 우분투 최신 버전인 20.04 서버를 선택하였습니다. (프리티어)

 

 

 

 

2) 프리티어로 되어있는 두번쨰 EBS 1기가를 선택하고 "검토 및 시작"을 클릭하여 바로 이동합니다.

 

 

 

 

3) 기존에 생성했던 키 페어가 있다면 사용하시면 되고, 없다면 새로 생성해서 .pem를 잘 보관하시면 됩니다.

.pem는 지속적으로 사용될 예정이므로, 반드시 잘 보관하셔야 합니다.

 

 

 

 

 

4) 인스턴스 생성이 완료되었습니다.

 

 


 

 

3. 터미널(SSH) 접속 확인

 

 

 

1) AWS를 통해 EC2 인스턴스를 클릭해줍니다.

생성된 인스턴스를 클릭(1-4번)하여 하단에 예시처럼 ip 주소를 기억해둡니다.

 

 

 

 

 

 

 

 

2) 좌측 네트워크 및 보안 -> 보안그룹을 클릭해줍니다.

상단 첫번째를 클릭해주면 아래와 같이 인바운드 규칙이 모든 ip 에 오픈이 되어있어야 합니다.

하지만, 사진처럼 안되어 있다면 "인바운드 규칙 편집"을 들어가서 위와 같이 세팅해주시면 됩니다.

(이 작업은 서버에 ssh접속시에 모든 ip에 접근을 허용해주기 위함 입니다.)

 

 

 

 

 

 

2)  EC2를 생성했다면, 터미널 or iterm2을 실행해줍니다.

실행한 뒤,  예시) ssh -i /Users/minsu/Download/minsu.pem ubuntu@192.1.1.1 처럼 입력해줍니다.

ip의 경우 1번에서 기억해둔 ip를 입력해줍니다.

만일 우분투로 생성하지 않았다면 OS에 따른 계정은 위 우측사진과 같습니다.

저는 ubuntu로 인스턴스를 생성했기에 최초 계정은 ubuntu이기에 위와같이 명령어로 입력하였습니다.

 

 


 

 

 

4. Apache2 설치 및 설정

 

1) EC2서버에 ssh접속한 후에  sudo apt-get install apache2 로 설치 해줍니다.

 

2) AWS EC2 보안 그룹 페이지로 이동합니다.(3-2번 참고)

 

 

 

3) 이번에는 HTTP로 80포트를 열어 모든 ip에서 접근되도록 규칙을 설정해줍니다.

 

 

 

 

4) 브라우저를 열고 공인 ip로 접속해주면 위 사진과 같이 나오면 아파치 설치가 정상적으로 된 것입니다.

 

 

5) apache2.conf 설정 파일을 엽니다.

sudo vi /etc/apache2/apache2.conf

 

 

 

 

 

6) 루트 디렉토리를 [/htdocs]로 변경합니다.

<Directory /htdocs>

        Options Indexes FollowSymLinks

        AllowOverride None

        Require all granted

</Directory>

 

 

 

 

 

7) default.conf 설정 파일 열기

sudo vi /etc/apache2/sites-available/000-default.conf

 

8) 루트 디렉토리를 [/htdocs]로 변경합니다.

DocumentRoot /htdocs

 

 

 

 

9) /home/project 폴더 생성 및 index.html 파일을 생성합니다.

sudo mkdir /htdocs

sudo vi /htdocs/index.html


10) index.html 파일을 작성합니다.

Hello World!


11) Apache 웹 서버 재시작

service apache2 restart

 

12) 공인 IP로 접속하여 웹 서버가 정상적으로 구동하는지 확인합니다.

 

 


 

 

 

5. PHP 설치 및 Apache와 연동

1) 최신 버전의 PHP 7.4를 설치해보겠습니다.

sudo apt update

sudo apt install php php-cli php-fpm php-json php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath

 

2) php버전을 확인하여 7.4가 정상적으로 설치되었는지 봅니다.

php -v

 

 

 

3) Apache와 PHP 연동 테스트합니다.

sudo vi /htdocs/index.php


4) phpinfo로 페이지를 작성합니다.

<?php phpinfo(); ?>

 

 


5) 공인 IP의 /index.php로 접속하고 PHP 연동이 제대로 됐는지 확인합니다.

 

  (index.html 파일을 지워야 할 수 있습니다.)

 

 

 

 

 


 

 

 

6. MySQL 설치

 

1) MySQL을 설치해줍니다. (mysql 8.0.12 설치)

sudo apt install mysql-server

 

2) MySQL이 제대로 설치되었는지 확인해줍니다.

dpkg -l | grep mysql-server

 

3) 아래의 명령어를 통해 mysql를 재시작 해줍니다.

(아마 Mysql서버가 설치되면서 자동으로 실행되므로 실행되고 있을겁니다.)

sudo systemctl restart mysql.service

 

4) MySQL 외부 접속을 설정해줍니다.

cd /etc/mysql/mysql.conf.d

sudo vi mysqld.cnf

 

mysqld.cnf파일에서 vi 편집기로 bind-address를 찾아 127.0.0.1 -> 0.0.0.0으로 변경해주기 저장합니다.

 

 

 

5) AWS EC2 보안그룹 페이지로 이동하여 아래처럼 인바운드 규칙이용하여 3306포트를 열어줍니다. (모든 ip 접근 허용)

 

 

 

6) mysql에 접속하여 

외부에서 접속할 계정을 생성하고 권한을 부여해줍니다.

 

CREATE USER 'root'@'%' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

 

7) mysql workbanch 또는 시퀄프로 등 툴을 사용해 접속가능합니다.