aws에 가입을 한 뒤, ec2 인스턴스를 생성한 뒤, OS는 우분투를 설정해 주었다.
가장 중요한 부분인 키 페어 생성인데, 인스턴스를 만들 때 키 페어를 만들어 ssh를 통해 내가 만든 서버를 내 pc에서 접근할 수 있다. 이때 이 키 페어로 이 서버의 주인인지 확인하기 때문에 잘 가지고 있어야 한다.
인스턴스 생성이 완성되면 아래와 같이 인스턴스가 잘 생성된것을 볼 수 있다.
어떤 요청을 받고 처리할지를 결정하 보안그룹 설정도 인스턴스를 만드는데 있어서 중요하다.
인스턴스를 생성하고 보안 탭에 가보면, 인바운드 규칙과 아웃바운드 규칙이 있다.
인바운드 규칙 : 클라이언트가 자신의 서버에 들어올 수 있는 규칙. 인바운드 규칙에 포함되어 있지 않은 요청은 접속을 거절한다.
아웃바운드 규칙: 서버에서 데이터를 내보낼 수 있는 규칙. 보통 모든 포트에게 허용되어 있다.
WinSCP는 sftp(secured file transfer protocol)을 사용해 암호화된 환경에서 파일 시스템을 사용할 수 있다.
WinSCP를 이용해 ssh 를 통해 aws 서버에 접속할 수 있다.
WinSCP 고급 설정에 다운받았던 개인키를 넣고 접속하면 다음과 같은 화면으로 넘어간다.
nginx 는 주로 정적 파일을 처리하기 위한 웹 서버로 활용되고 리버시 프록시의 역할로 예를 들어 80번 포트에서 들어오는 내용을 3000, 4000 등의 포트로 분산시켜 줄 수 있다.
nginx : 싱글스레드 Event Driven 방식으로 Event Handler를 통해 비동기 방식으로 요청을 처리한다.
apache: 쓰레드/프로세스 방식으로 작동하며 접속할 때 마다 쓰레드나 프로세스를 생성한다.
nginx 를 설치 후, http로 접속을 위해 해당 인바운드 규칙을 열어 주어야 접속이 가능하다.
시크릿 탭에서 퍼블릭 ip로 연결에 성공하면 nginx가 다음과 같은 기본 화면을 보여준다.
/etc/nginx/nginx.conf 파일이 nginx의 기본 설정 파일이다.
파일을 열어 내려보면 nginx에서 설정파일을 역할별로 분류해 놓은 것을 볼 수 있다.
/etc/nginx/sites-available/default 경로에 들어가면 사이트에 관한 기본 설정을 변경할 수 있다.
php와 관련된 부분의 주석을 해제해서 php파일이 열리도록 설정하자.
root 계정으로 들어와 유저를 추가해 주었다.
mysql > create user userid@localhost identified by '비밀번호';
mysql은 사용자 이름, 비밀번호, 접속 호스트로 mysql에 접근 할 수 있는가 확인을 하는데, 로그인을 시도하는 위치도 인증의 일부로 보는 것이다.
먼저 test라는 테스트 데이터베이스를 생성하고 해당 위치를 접근할 수 있는 권한을 주었다.
grant all privileges 명령어로 모든 원격지에서의 접속 권한을 추가했다.
%가 들어가 있는 위치에 '1.2.3.4'라고 하면 ip가 1.2.3.4인 곳에서만 접속을 허용하겠다는 뜻이다.
%는 모든 원격 접속지에서의 접속을 허용하겠다는 의미이다.
mysql > grant all privileges on DB명.* to userid@'%' identified by '비밀번호' ;
sudo apt install php-fpm php-mysql
nginx는 /var/www/html 경로를 바탕으로 페이지를 찾기 때문에 해당 경로에 php파일을 하나 생성해 php가 잘 동작하는지 확인할 수 있다.
sudo vi /var/www/html/phpinfo.php
크롬 시크릿 모드로 퍼블릭ip/phpinfo.php로 방금 만들었던 php 파일이 잘 보이는지 확인할 수 있다.