ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Linux]AWS EC2 서버 구축_NPM 설치
    Server 2021. 9. 22. 15:27

    1. AWS EC2 인스턴스 생성하기

     

    Cloud Computing

    기존의 물리적인 형태의 실물 컴퓨팅 자원을 네트워크 기반 서비스 형태로 제공하는 것을 말하여 세 가지 분류로 나뉜다.

    - IaaS (Infrastructure as a Service)

    - PaaS (Platform as a Service)

    - SaaS (Software as a Service)

    IaaS는 AWS, 네이버 클라우드 플랫폼과 같은 인프라스트럭쳐를 제공하는 서비스를 말한다. 사용자는 물리적인 하드웨어를 직접 관리할 필요가 없으며, 직접적으로 서비스 이용을 통해 컴퓨터 리소스를 사용 할 수 있다. NPM 서버를 구축하기 위해서 사용할 서비스는 AWS이며, AWS에 관한 설명은 아래에 덧불였다.

     

     

    AWS

    Amazon Web Service의 약자로 아마존에서 만든 클라우드 서비스이다. 가상 컴퓨터와 스토리지, 네트워크 인프라 등 다양한 서비스를 제공한다.  아마존에서 구축해놓은 가상컴퓨터의 일부를 빌려서 내 컴퓨터처럼 사용할 수 있다.

     


     

    AWS의 EC2 인스턴스를 이용해서 서버를 구축할 것이므로 가장 먼저 인스턴스를 생성해야 한다.

    AWS 계정을 생성하고 지역(region)을 서울로 변경한다.

    그다음 서비스 >  EC2  > 인스턴스 시작을 차례로 클릭한다.

     

     

    1) AMI 선택

     

     

    2) 인스턴스 유형 선택

    프리티어 사용 가능이라고 표기된 것을 선택한다. 

    인스턴스 구성 단계는 따로 건드리지 않았다.

     

     

    3) 스토리지 추가

    기본값은 8GB였지만 30GB까지 프리티어로 사용 가능하므로 30GB로 변경했다.

    태그 추가, 보안 그룹 구성 단계는 기본값 그대로 두었다.

     

     

    4) 검토 및 시작

     

    오른쪽 하단의 시작하기 버튼을 누르면 아래처럼 키 페어 생성 화면이 뜬다. 

    새 키페어 생성을 선택하고 키 페어 이름을 입력한 뒤 키 페어 다운로드 버튼을 누른다.

    키 페어는 AWS 접속에 쓰이므로 절대 잃어버리면 안 된다. 키 페어가 다운로드된 위치를 잘 기억해두어야 한다.

     

     

    인스턴스가 성공적으로 생성되었다. 

    (인스턴스 상태가 '실행중'이라고 변경된 후에 다음 단계를 진행해야 한다.)

     

     

     

     

     

    2. AWS EC2 인스턴스에 접속하기 / WinSCP, PuTTY 이용

     

     

    WinsSCP와 PuTTY는 ubuntu환경에서 원격 접속을 지원하는 SSH 프로그램이다. PuTTY를 이용해 EC2 인스턴스에 원격으로 접속할 수 있고 WinSCP를 이용해 파일을 전송할 수 있다.

     

     

    우선 https://winscp.net/eng/docs/lang:ko에 접속해 WinSCP를 설치한다.

    호스트 이름에는 인스턴스의 퍼블릭 IPv4 주소를 입력하고 사용자 이름에는 'ubuntu'를 입력한다. 포트 번호는 그대로 두고 비밀번호 또한 그대로 비워둔다.

     

     

    고급 -> 인증 버튼을 차례로 누르고 위에서 다운로드한 키 페어를 개인키 파일에 로드한다.

    pem 형식의 키 파일을 ppk 형식으로 변환한다.

     

     

    저장 버튼을 누르고 원하는 세션 이름을 입력하였다. 마지막으로 로그인 버튼을 누르면 AWS에서 생성한 EC2 인스턴스와 WinSCP 연결이 완료된다.

     

     

     

    좌측이 로컬 컴퓨터, 우측이 원격 컴퓨터(서버)의 폴더 구조이다.

     

     

    PuTTY에서 열기(Ctrl+P) 아이콘을 눌렀는데 위와 같은 오류가 발생하였다.

    PuTTY를 설치하여 위의 경로에 putty.exe 파일을 저장했더니 금방 해결되었다.

    ( https://www.chiark.greenend.org.uk/~sgtatham/putty/에서 PuTTY를 다운로드 받을 수 있다. 본인 컴퓨터 비트 수에 맞는 것으로 설치하면 된다. )

     

     

     

     

     

     

    3. NPM 서버 환경 구축하기

     

    1) nginx 설치

    $ sudo apt update
    $ sudo apt install nginx

    EC2 인스턴스에 접속해 nginx를 설치한다.

     

     

    인스턴스의 보안그룹에서 인바운드 규칙을 편집할 수 있다.

    웹 브라우저를 통해서 서버에 접속하기 위해 HTTP 유형을 선택해 인바운드 규칙을 추가해주었다.

    위의 과정을 마치면 80번 포트를 통해 서버에 접근할 수 있게 된다.

     

     

     

     

     

     

    2) MySQL 설치

    $ sudo apt install mysql-server
    $ sudo mysql -u root -p

    EC2 인스턴스에 접속해 MySQL을 설치한다.

     

     

     

     

    3) php 설치

    $ sudo apt install php-fpm php-mysql

    EC2 인스턴스에 접속해 php를 설치한다. nginx와 php를 연동하기 위해 php-fpm을 반드시 함께 설치해야 한다.

     

     

    $ cd /var/www/html
    $ sudo vi index.php

    /var/www/html 디렉토리로 이동하여 편집기를 열고 index.php 파일을 생성한다.

    파일에 작성할 코드는 아래와 같다.

    <?php
    phpinfo();
    ?>

     

     

    $ sudo vi /etc/nginx/sites-available/default

    nginx와 php를 연동하기 위해 nginx의 설정 파일을 열고 아래와 같이 주석을 해제한다.

    사용하는 php-fpm의 버전에 따라 pastcgi_pass 부분의 php7.0-fpm.sock를 php7.2-fpm.sock 로 수정했다.

     

     

    $ sudo service nginx restart

    변경된 설정을 적용하기 위해 nginx를 재시작했는데 위와 같은 오류가 발생했다.

    journalctl -xe 명령어를 입력해 오류가 발생한 부분을 확인했다.

     

     

    /etc/nginx/sites-enabled/default 파일의 92번째 줄에 중괄호가 추가로 필요하다고 하여 해당 파일을 열고 수정해주었다.

    $ sudo vi /etc/nginx/sites-enabled/default

     

     

    $ sudo service nginx restart

    다시 nginx를 실행하고 퍼블릭 IPv4 주소/index.php에 접속했더니 php 정보가 정상적으로 출력되었다.

     

     

     

     

    https://goddaehee.tistory.com/174

    https://sangm1n.github.io/start-aws/

Designed by Tistory.