AWS EC2 서버구축 (인스턴스 생성 및 putty 명령창 실행)

msung99·2022년 10월 7일
0
post-thumbnail

AWS 계정생성

우선 AWS 를 사용하기 위해 계정을 생성했다. 아래와 같이 무료 지원을 사용했다. 참고로 AWS 계정 생성날을 기준으로 1년동안 무료 사용 가능하며, 만료되었을 때 다시 새로운 계정을 파서 무료로 사용하는 방법이 있다고 하니 참고하면 좋을듯하다!

회원가입 완료이후 최초 로그인화면이다.


AWS EC2 서버 구축

서버를 구축하고 싶기 떄문에 EC2 로 아래처럼 접속을 했다.

이후 인스턴스를 누르고, 인스턴스 시작을 누르면 된다. 그리고 서버 구축을 위한 셋팅을 진행하도록 한다.


인스턴스 초기 생성 (+ Ubuntu 설치)

OS 유형 선택

서버를 구축하기 위해선 당연히 OS 가 필요할 것이다. 어떤 OS 를 사용할 것인지를 선택한다.

나는 Ubuntu Server 18.04 를 선택했다.

인스턴스 유형 선택

디폴드 값을 그대로 설정했다.
이떄 프리티어란, AWS 계정 생성일을 기준으로 1년동안은 무료로 사용가능한데 이 기간동안 특정 범위 및 기능에 한해서 무료로 사용할 수 있는 인스턴스 유형을 의미한다.

보안그룹 설정

이것이 핵심이다. 규칙추가가 가능한데,

아래와 같이 추가가 가능하지만 지금은 PASS!

이때 SSH 프로토콜이란, 로컬에서 외부에 있는 클라우드 컴퓨팅 서버의 컴퓨터 한 대를 빌릴때 쓰인다. 근데, 그 빌린 외부 컴퓨터에 직접 접속해서 명령을 친다던지 무언가를 하는 것이다. 이런 행위를 하고 싶을때 SSH 프로토콜을 통해서 접속할 수 있다.

키페어 생성

본인이 EC2 를 생성했다는 것은, 자기만 EC2 에 접속하도록 설정한것이다.
그래서 키 페어를 통해 자신만 접속할 수있게 하는 것이다.

새로운 키 페어를 생성하고 다운로드를 하도록 하자!

cf) 키 페어는 잘 기억하도록 하자! 키 페어를 잃어버리면 이곳에 다시 접근하기가 어렵다! 또한 한번 다운로드 받았다면 다시 다운로드 받지 못한다.

아래처럼 다운로드 결과를 볼 수 있다.

EC2 인스턴스 생성(시작)


인바운드 규칙 추가

인스턴스에 대한 규칙을 추가함으로써, HTTP 80번 포트에 대한 요청을 AWS 에서 열어줘야한다.

인스턴스에 대한 규칙에는 인바운드 규칙과 아웃바운드 규칙이 있다고 한다.

인바운드 규칙은 서버에 접속할 때 규칙이고, 아웃바운드 규칙은 서버에서 데이터가 나갈 때의 규칙이다.

인바운드 규칙만 신경 쓰면 된다.

아래와 같이 HTTP 에 대해서도 인바운드 규칙을 추가해주자.

HTTP 유형, Anywhere-IPv4
HTTP로 만든 이유는 '손님이 사용하는 문'을 만들기 위해서이다.

(기존에 SSH 규칙이 하나 만들어져 있을 텐데, SSH 유형의 문은 관리자들만 이용할 수 있다!)

그리고 인스턴스에서 내가 만든 서버의 public IP를 확인할 수 있는데, 이 IP는 고정 IP가 아니라 유동 IP라서 인스턴스를 종료하고 다시 시작하면 바뀐다고 한다!



Ngnix, PHP, MySQL 설치

생성한 AWS 서버에 운영체제로 Ubuntu 를 설치했으니, 다음으로 Ngnix, PHP, MySQL 를 설치해보도록 하겠다.

그 전에, 아까 설정한 SSH 프로토콜로 접속할 수 있도, SSH 키를 등록 해야하는데
윈도우는 cmd만으로 설정할 수 없다고 한다.
그래서 아래 링크에서 WinSCP 를 다운받도록 한다.

cf) SSH 와 SFTP 는 똑같은거다!

링크 : https://winscp.net/download/WinSCP-5.19.6-Setup.exe

winscp 설치후 아래와 같이 접속해서 호스트이름에 EC2 로 할당받은 IPV4 주소를 입력하고 이름과 비번을 입력해야한다.

이때 주의할점!! 인스턴스의 아이디는 OS 를 우분투로 설치한 경우 ubuntu 가 되며, 비밀번호는
아까 생성했던 키페어를 입력해야만 접근할 수 있다.

아래와 같이 고급 버튼을 - SSH - 인증 - 개인키파일 쪽으로 들어가서 아까 다운로드 받은 pem 파일을 개인키파일에 할당한다.

그러면 아래처럼 ppk (puTTY) 로 파일 형식이 자동 변환되고

확인 버튼을 누르자.

( cf) 보듯이 WinSCP를 사용중이시라면 별도의 변환 프로그램이나 변환 과정 없이 해당 작업으로 손쉽게 pem파일을 ppk로 변환할 수 있다! )

위 과정이 무슨 의미이냐면,
이전에 우분투를 가상환경(virtual box) 에 설치하고 GUI 환경에서 폴더 구조를 볼 수 있었다.
그와 마찬가지로 AWS 에서 빌린 서버의 폴더 구조를 볼 수 있게 한 것이다!

putty 명령어창 실행

위롸 같이 실행을 시켰다.

Ngnix, MySQL 설치

  • Putty 에서 아래와 같이 명령어를 입력하며 설치를 진행한다.
$ sudo apt update
$ sudo apt install nginx
$ nginx -v //설치 확인
mysql 설치하기
$ sudo apt install mysql-server
$ sudo mysql_secure_installation //비밀번호 설정

설치 후 AWS 로 만든 "IP주소" 에 접속해보면

위와 같이 nginx 가 정상 설치되었음을 확인할 수 있다.


PHP 설치

$ sudo apt install php-fpm php-mysql // php 설치 

$ cd /etc/nginx/sites-available  // 디렉토리 이동
$ sudo vi default // default 라는 파일을 열고 vi 편집기로 수정
  • default 파일은 서버에 대한 기본파일 설정 내용들이 들어있다.
    해당 파일에 들어가서 편집을 위해 "a" 를 눌러서 편집 모드로 실행하고
    아래와 같이 "fastcgi_pass unix:~~~" 이 내용을 추가해줌으로써 php 버전을 알맞게 수정해준다.

또 아래와 같이 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" 에 접속해보면 아래와 같이 화면이 보이게 되면 성공이다.

profile
https://haon.blog

0개의 댓글