[AWS] 웹 서버 & 웹 애플리케이션 서버 설치

2024. 12. 16. 11:37·Cloud(AWS)

1. SSH를 이용해 EC2 인스턴스 접속

2. Phusion Passenger의 설치 파일을 내려 받기

3. 설치한 asdf를 이용하여 루비(Ruby) 언어를 설치 (ruby 설치 이유는 Phusion passenger이 c++, ruby로 만들어져서)

4. Passenger 명령어를 쉽게 실행하기 위해 변수를 설정하는 작업을 해준다.

5. Phusion Passenger를 이용해 Pasenger nginx module을 설치해준다.

//Phusion passenger, nginx module 설치
[ec2-user@ip-172-31-6-63 ~]$ passenger-install-nginx-module

--------------------------------------------

Which languages are you interested in?

Use <space> to select.
If the menu doesn't display correctly, press '!'

   ( )  Ruby
   ( )  Python
 > (*)  Node.js
   ( )  Meteor

--------------------------------------------

 

여기서 시스템에 가상 메모리가 부족해서 설치 시 문제가 발생할 수 있기 때문에 가상 메모리를 늘린 뒤 installer를 실행하는 것이 좋다. 설치를 더 이상 진행하지 않고, 가상 메모리를 늘리기 위해 ctrl + c를 눌러준다.

 


6. installer에서 추천하는 명령어를 통해 가상메모리의 크기를 늘린다.

[ec2-user@ip-172-31-6-63 ~]$ sudo dd if=/dev/zero of=/swap bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 13.5719 s, 79.1 MB/s

[ec2-user@ip-172-31-6-63 ~]$ sudo mkswap /swap
mkswap: /swap: insecure permissions 0644, 0600 suggested.
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=d19e0be5-bdc4-4f55-a4fd-17baf4c35854

[ec2-user@ip-172-31-6-63 ~]$ sudo swapon /swap
swapon: /swap: insecure permissions 0644, 0600 suggested.

7. 다시 Passenger nginx module 설치를 시도해준다.

[ec2-user@ip-172-31-6-63 ~]$ passenger-install-nginx-module

 

두 번째 사진에서는 경고 메시지 : ec2-user로 로그인한 상태에서 root 권한이 필요한 /opt/nginx 경로에 설치하려다 권한 에러가 발생했다. ec2-user가 아닌 root 계정으로 실행하기 위해서는 현재 asdf의 환경변수를 보존하면서 root 계정을 실행해준다.

  • asdf 플러그인이 설치된 경로를 asdf 환경 변수에 명시적으로 지정
  • sudo 명령어에 옵션을 지정하지 않는 경우 ec2-user의 환경변수가 보존되지 않은 새로운 세션을 생성해준다.
  • 현재 PATH 환경변수를 임시로 저정해주고 sudo 명령어이 s(--shell) 와 E(--preserve_env) 옵션을 주어 ec2-user의 PATH 환경변수를 유지해준다.
[ec2-user@ip-172-31-6-63 ~]$ export ASDF_DATA_DIR=/home/ec2-user/.asdf
[ec2-user@ip-172-31-6-63 ~]$ export ORIG_PATH="$PATH"
[ec2-user@ip-172-31-6-63 ~]$ sudo -s -E
[root@ip-172-31-6-63 ec2-user]# export PATH="$ORIG_PATH"
[root@ip-172-31-6-63 ec2-user]# asdf global ruby 3.1.1

 

# root 계정으로 다시 nginx-module 설치를 시도해준다. 

[ec2-user@ip-172-31-6-63 ~]$ passenger-install-nginx-module

 

현재 까지 해준 작업 


8. 텍스트 편집기로 Nginx의 설정을 변경하기 위해 파일을 열어준다.

[ec2-user@ip-172-31-6-63 ~]$ sudo vi /opt/nginx/conf/nginx.conf
[ec2-user@ip-172-31-6-63 ~]$ sudo /opt/nginx/sbin/nginx

실행이 안된다. 이유는 서버를 재시작하거나 끄기 위해서 사용하는 명령어가 간단하지 않기 때문. 서비스 관리를 조금 더 쉽게 하기 위해 명령어를 추가해줘야한다. 

 

[문제 해결 방안]

9. nginx,  phusion passenger 서비스 명령어 추가

# /etc/init.d 경로에 스크립트 추가. (init.d는 서비스 스크립트들이 존재하는 경로)

[ec2-user@ip-172-31-6-63 ~]$ cd /etc/init.d
[ec2-user@ip-172-31-6-63 init.d]$
[ec2-user@ip-172-31-6-63 init.d]$
[ec2-user@ip-172-31-6-63 init.d]$ ls
functions  netconsole  network  README
[ec2-user@ip-172-31-6-63 init.d]$
[ec2-user@ip-172-31-6-63 init.d]$ sudo vi nginx

 

# nginx 시작 스크립트의 내용을 복사 및 붙여 넣기해서 저장한다.

# 실행 가능한 서비스로 만들기 위해 파일 권한을 변경해준다.

[ec2-user@ip-172-31-6-63 init.d]$ sudo vi nginx
[ec2-user@ip-172-31-6-63 init.d]$ sudo chmod 755 nginx


9. 시스템 시작 시 자동 시작 서비스에 등록

[ec2-user@ip-172-31-6-63 init.d]$ sudo /opt/nginx/sbin/nginx
[ec2-user@ip-172-31-6-63 init.d]$ sudo chkconfig --add nginx
[ec2-user@ip-172-31-6-63 init.d]$ sudo ntsysv

# 스냅샷 

저작자표시 비영리 변경금지 (새창열림)

'Cloud(AWS)' 카테고리의 다른 글

[AWS] Elastic 로드 밸런싱을 이용한 서버 트래픽 분산  (0) 2024.12.16
[AWS] Auto Scaling 그룹 생성  (0) 2024.12.16
[AWS] 웹 애플리케이션 서버 구축  (0) 2024.12.09
[AWS] 인스턴스(EC2) 생성  (0) 2024.12.09
[개념] 클라우드 컴퓨팅 유형  (0) 2024.12.09
'Cloud(AWS)' 카테고리의 다른 글
  • [AWS] Elastic 로드 밸런싱을 이용한 서버 트래픽 분산
  • [AWS] Auto Scaling 그룹 생성
  • [AWS] 웹 애플리케이션 서버 구축
  • [AWS] 인스턴스(EC2) 생성
Kouji
Kouji
Journey to Becoming a Data & Server Engineer
  • Kouji
    Kouji's Data & Server Journey
    Kouji
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Programming
        • Python
        • SQL
      • Data & AI
        • Data Analysis
        • Ai
      • Cloud(AWS)
      • OS
        • Linux
        • Docker
        • Jenkins
        • Ubuntu
        • Window
        • Kubernates
        • Ansible
      • Network
        • NVIDIA
        • Network[이론]
        • Network[GNS3, Packet]
        • Network[On-Premise]
        • Network [L2, L3]
      • 트러블 슈팅
      • Life
        • My Career Stories
        • Personal
      • 개발 + OS 지식 함양
  • 블로그 메뉴

    • 홈
    • 관리 페이지
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    오블완
    Linux
    IT
    도커
    시스템엔지니어
    보안
    AWS
    네트워크관리사
    L3
    리눅스
    서버
    OS
    docker
    화이팅
    CISCO
    VMware
    스위치
    웹
    네트워크엔지니어링
    클라우드엔지니어
    ubuntu
    인프라
    알고리즘
    티스토리챌린지
    서버엔지니어
    인프라엔지니어
    네트워크엔지니어
    라우팅
    dns
    네트워크
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Kouji
[AWS] 웹 서버 & 웹 애플리케이션 서버 설치
상단으로

티스토리툴바