KDT/Cloud

231110 Cloud - AWS EC2 인스턴스 웹서버 동작 및 파일 업로드

001cloudid 2023. 11. 10. 17:37
728x90
더보기

EC2 인스턴스를 만들고  간단히 동작시키는 방법을 알아보았다.

계속해서 웹 서버 Apache와 Nginx를 이용하여 동작시키는 방법과 파일 업로드하는 방법에 대해 알아보자

 

AWS EC2 인스턴스 웹 서버 동작(Apache)

새로운 인스턴스 생성 위의 이전 글(231106 cloud)을 참고하여 Web이라는 인스턴스를 생성

※이전 시간과 다른 점은 이미 네트워크 설정에서 만든 것이 있으므로 그림1을 참고

Select existing security group(또는 기존 보안 그룹 선택)을 선택

일반 보안 그룹 web, ssh 선택

네트워크 설정1네트워크 설정2네트워크 설정3
그림 1. 네트워크 설정

 

  1. 웹 서버로 동작하기 위해서는 웹 서버용 프로그램이 필요
  2. 아파치 웹 서비스 프로그램 설치
  3. ec2-user 계정은 일반 사용자 계정이므로 프로그램 설치, 계정 관리 등
    관리자 권한이 필요한 명령어 입력 시 앞에 'sudo'를 붙임.
  4. 아파치 웹 서비스 프로그램 설치
    sudo yum install httpd -y
  5. 동작 상태 확인
    systemctl status httpd
    (...생략...) Active: inactive (dead)~~" -> 동작 중지 상태
  6. 아파치 웹 서비스 시작
    sudo systemctl start httpd
    ※아무런 메세지를 보여주지 않으면 제대로 동작한 것
  7. 웹 브라우저에서 AWS EC2 인스턴스 퍼블릭 IPv4 주소를 입력 -> Test Page가 보임
  8. 아파치의 DocumentRoot인 /var/www/html으로 이동
    cd /var/www/html
    pwd -> /var/www/html이 출력
  9. 웹 브라우저에게 기본적으로 제공되는 index.html 파일 생성
    vi /etc/httpd/conf/httpd.conf
    ※vi 문서 편집기,set nu 번호 부여, :n(번호) (번호)로 이동, gg 맨 위, G 맨 아래, :wq 저장 후 종료, ls list안에 있는 파일
  10. sudo vi /var/www/html/index.html
    (sudo vi /var/www/html/index.html 절대 경로)

 

AWS EC2 인스턴스 웹 서버 동작(NginX)

  1. nginx 리포지토리 추가
    vi /etc/yum.repos.d/nginx.repo
    ============================================================
    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/centos/7/$basearch/
    gpgcheck=0
    enabled=1
    ============================================================
  2. nginx 설치
    yum install nginx -y
  3. nginx 설치 확인
    rpm -qa nginx
    또는 nginx -v
  4. nginx 동작 확인
    systemctl status nginx
    => Active: (..생략..) (dead) - 동작 중지
  5. nginx 시작
    sudo systemctl start nginx
  6. nginx 동작 재확인
    systemctl status nginx
    => Active: active (running) - 동작 중
  7. 웹 브라우저에서 접속 확인

리눅스 디렉토리 구조
그림 2. 리눅스 디렉토리 구조(계층형, 트리 구조)

AWS EC2 인스턴스 파일 업로드

  • 기본적으로 윈도우와 리눅스 파일 교환이 불가능하기 때문에 파일을 주고 받기 위해서는 파일 서비스가 필요
  • 리눅스를 파일 서버로 설정하고 원도우에서 클라이언트 프로그램을 설치해야 파일을 업로드 할 수 있다.
  • 서버-클라이언트 환경을 만들지 않아도 쉽게 파일을 전송할 수 있는 방법은 sFTP를 사용하면 된다.

※sFTP란?

서버에 원격접속 할 때 SSH라는 방식/방법을 통해서 접속 서버의 22번 포트(port)를 통해서 가상의 길(Path)이 만들어짐

SSH Secure Shell

포트는 16bit로 만들어져있음. 2^16 0~65535를 사용할 수 있음. http 80, https 443, Tomcat 8080

가상의 길을 통해 파일을 업로드 할 수 있음

 

MobaXterm 프로그램은 sFTP를 지원(SHH browser)

 

웹 브라우저에서 만들어진 .html 파일을 보려면 Document root인 /var/www/html에 있어야함.

하지만 /var/www/html 파일을 업로드 하려고하면 에러 발생한다. 이유는 /var/www/html 소유자는 root이기 때문이다.

이를 해결하기 위해서는 ec2-user 홈 디렉토리(home/ec2-user)에 우선 파일을 업로드 한 후, 명령어를 통해 해당 위치로 이동.

  1. 원하는 파일(ex1.html이라고 하겠음)을 /home/ec2-user 위치에 업로드(드래그 앤 드롭)
  2. cd => ec2-user의 홈 디렉토리로 이동
  3. ls => 파일 확인
  4. sudo mv ex1.html /var/www/html/
    ※mv : move(잘라내기 -> 붙여넣기).
      mv   옮기고자 하는 파일   옮기고 싶은 곳
      옮기고 싶은 곳을 지정할 때 파일명을 변경하고 싶다면 써주고 같은 이름으로 하고 싶다면 생략
    ex) mv ex1.html /var/www/html => /var/www/html 아래 ex1.html 같은 이름으로 이동
    ex) mv ex1.html /var/www/htmltest.html => ex1.html의 이름을 test.html로 변경하면서 /var/www/html 아래로 이동
  5. 파일이 이동되었으면 웹 브라우저 주소창에 퍼블릭 "IPv4주소/이동한 파일 이름"

==================

※DocumentRoot에 index.html 만들기

DocumentRoot는 vi /etc/nginx/nginx.conf 안에 include /etc/nginx/conf.d/*.conf; 이 문장에 의해 /etc/nginx/conf.d 디렉토리 안 .conf로 끝나는 모든 파일들을 참조하는 것을 알 수 있음

 

cd /etc/ nginx/conf.d

ls -> default.conf 파일이 보임

vi /etc/nginx/conf.d/default.conf => root /usr/share/nginx/html; 보임 즉 nginx의 DocumentRoot의 경로

 

728x90

'KDT > Cloud' 카테고리의 다른 글

231204 Cloud  (0) 2023.12.04
231201 Cloud  (0) 2023.12.01
231124 Cloud  (0) 2023.11.24
231117 Cloud - AWS Apache Tomcat Server(여기서부터 수정)  (0) 2023.11.17
231106 Cloud - AWS 시작하기 및 EC2 인스턴스 원격접속  (0) 2023.11.06