우선 AWS 를 사용하기 위해 계정을 생성했다. 아래와 같이 무료 지원을 사용했다. 참고로 AWS 계정 생성날을 기준으로 1년동안 무료 사용 가능하며, 만료되었을 때 다시 새로운 계정을 파서 무료로 사용하는 방법이 있다고 하니 참고하면 좋을듯하다!
회원가입 완료이후 최초 로그인화면이다.
서버를 구축하고 싶기 떄문에 EC2 로 아래처럼 접속을 했다.
이후 인스턴스를 누르고, 인스턴스 시작을 누르면 된다. 그리고 서버 구축을 위한 셋팅을 진행하도록 한다.
서버를 구축하기 위해선 당연히 OS 가 필요할 것이다. 어떤 OS 를 사용할 것인지를 선택한다.
나는 Ubuntu Server 18.04 를 선택했다.
디폴드 값을 그대로 설정했다.
이떄 프리티어란, AWS 계정 생성일을 기준으로 1년동안은 무료로 사용가능한데 이 기간동안 특정 범위 및 기능에 한해서 무료로 사용할 수 있는 인스턴스 유형을 의미한다.
이것이 핵심이다. 규칙추가가 가능한데,
아래와 같이 추가가 가능하지만 지금은 PASS!
이때 SSH 프로토콜이란, 로컬에서 외부에 있는 클라우드 컴퓨팅 서버의 컴퓨터 한 대를 빌릴때 쓰인다. 근데, 그 빌린 외부 컴퓨터에 직접 접속해서 명령을 친다던지 무언가를 하는 것이다. 이런 행위를 하고 싶을때 SSH 프로토콜을 통해서 접속할 수 있다.
본인이 EC2 를 생성했다는 것은, 자기만 EC2 에 접속하도록 설정한것이다.
그래서 키 페어를 통해 자신만 접속할 수있게 하는 것이다.
새로운 키 페어를 생성하고 다운로드를 하도록 하자!
cf) 키 페어는 잘 기억하도록 하자! 키 페어를 잃어버리면 이곳에 다시 접근하기가 어렵다! 또한 한번 다운로드 받았다면 다시 다운로드 받지 못한다.
아래처럼 다운로드 결과를 볼 수 있다.
인스턴스에 대한 규칙을 추가함으로써, HTTP 80번 포트에 대한 요청을 AWS 에서 열어줘야한다.
인스턴스에 대한 규칙에는 인바운드 규칙과 아웃바운드 규칙이 있다고 한다.
인바운드 규칙은 서버에 접속할 때 규칙이고, 아웃바운드 규칙은 서버에서 데이터가 나갈 때의 규칙이다.
인바운드 규칙만 신경 쓰면 된다.
아래와 같이 HTTP 에 대해서도 인바운드 규칙을 추가해주자.
HTTP 유형, Anywhere-IPv4
HTTP로 만든 이유는 '손님이 사용하는 문'을 만들기 위해서이다.
(기존에 SSH 규칙이 하나 만들어져 있을 텐데, SSH 유형의 문은 관리자들만 이용할 수 있다!)
그리고 인스턴스에서 내가 만든 서버의 public IP를 확인할 수 있는데, 이 IP는 고정 IP가 아니라 유동 IP라서 인스턴스를 종료하고 다시 시작하면 바뀐다고 한다!
생성한 AWS 서버에 운영체제로 Ubuntu 를 설치했으니, 다음으로 Ngnix, PHP, MySQL 를 설치해보도록 하겠다.
그 전에, 아까 설정한 SSH 프로토콜로 접속할 수 있도, SSH 키를 등록 해야하는데
윈도우는 cmd만으로 설정할 수 없다고 한다.
그래서 아래 링크에서 WinSCP 를 다운받도록 한다.
cf) SSH 와 SFTP 는 똑같은거다!
winscp 설치후 아래와 같이 접속해서 호스트이름에 EC2 로 할당받은 IPV4 주소를 입력하고 이름과 비번을 입력해야한다.
이때 주의할점!! 인스턴스의 아이디는 OS 를 우분투로 설치한 경우 ubuntu 가 되며, 비밀번호는
아까 생성했던 키페어를 입력해야만 접근할 수 있다.
아래와 같이 고급 버튼을 - SSH - 인증 - 개인키파일 쪽으로 들어가서 아까 다운로드 받은 pem 파일을 개인키파일에 할당한다.
그러면 아래처럼 ppk (puTTY) 로 파일 형식이 자동 변환되고
확인 버튼을 누르자.
( cf) 보듯이 WinSCP를 사용중이시라면 별도의 변환 프로그램이나 변환 과정 없이 해당 작업으로 손쉽게 pem파일을 ppk로 변환할 수 있다! )
위 과정이 무슨 의미이냐면,
이전에 우분투를 가상환경(virtual box) 에 설치하고 GUI 환경에서 폴더 구조를 볼 수 있었다.
그와 마찬가지로 AWS 에서 빌린 서버의 폴더 구조를 볼 수 있게 한 것이다!
위롸 같이 실행을 시켰다.
$ sudo apt update
$ sudo apt install nginx
$ nginx -v //설치 확인
mysql 설치하기
$ sudo apt install mysql-server
$ sudo mysql_secure_installation //비밀번호 설정
설치 후 AWS 로 만든 "IP주소" 에 접속해보면
위와 같이 nginx 가 정상 설치되었음을 확인할 수 있다.
$ sudo apt install php-fpm php-mysql // php 설치
$ cd /etc/nginx/sites-available // 디렉토리 이동
$ sudo vi default // default 라는 파일을 열고 vi 편집기로 수정
또 아래와 같이 nginx.conf 라는 파일에 들어가서 또 파일을 편집한다.
$ cd /var/www/html
$ sudo vi phpinfo.php
그리고 파일 내용중에 아래와 같은 내용이 주석 처리 되어있을텐데, 주석을 지워준다.
server_names_hash_bucket_size 64;
마지막으로
$ sudo nginx -t
와 같이 명령어를 입력했을때 test successful 이 뜨면 정상적으로 연동에 성공한것이다.
그리고
$ sudo service nginx restart
이렇게 nginx 설정 파일을 수정했다면, 항상 위 명령어를 통해 설정한 내용들을 반영해주어야한다.
마지막으로 "IP주소/phpinfo.php" 에 접속해보면 아래와 같이 화면이 보이게 되면 성공이다.