Hayden's Archive

[AWS] Amazone Linux 서버 설정하기 본문

Study/DevOps

[AWS] Amazone Linux 서버 설정하기

_hayden 2021. 8. 29. 14:29

현재 내가 진행 중인 토이 프로젝트에서는 스프링부트, 리액트를 사용하기 때문에

스프링부트, 리액트 프로젝트를 기준으로 하여 설정해보겠다.

 


우분투에 익숙해서 apt-get 명령어를 쳤다가 당황했다.

sudo: apt-get: command not found

 

Amazone Linux는 레드햇 계열 리눅스이므로 apt-get 명령어 대신 yum을 사용한다.

Linux는 크게 레드햇, 데비안, 우분투 3가지로 분류되며, 계열에 따른 패키지 관리 명령어가 다르다. 

레드햇 계열(레드햇 엔터프라이즈, 페도라, CentOS)은 yum을 사용하고 

데비안, 우분투 계열은 apt-get 을 사용한다.

 

yum 패키지 관리자로 update, upgrade를 해주자. ( 참고 : apt와 yum 패키지 관리자의 update, upgrade 차이점 )

$ sudo yum update
$ sudo yum upgrade

 


TimeZone 변경

EC2 서버의 기존 타임존은 세계 표준 시간인 UTC(한국 시간과 9시간 차이)이다.

 

서버의 타임존을 한국 시간(KST)로 변경하자.

$ sudo rm /etc/localtime
$ sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime

 


HostName 변경

현재 진행 중인 토이 프로젝트는 서버 하나로 운영하지만

여러 서버를 관리할 경우에는 IP만으로 어떤 서비스의 서버인지 확인이 어렵다.

그러므로 각 서버가 어떤 서비스의 서버인지 표현하기 위해 HostName을 변경해주는 것이 좋다.

 

아래 명령어를 입력해서 편집 파일을 연다.

$ sudo nano /etc/hosts

 

밑줄 친 부분을 추가해준다.(127.0.0.1   원하는 서비스명)

입력 후 저장은 Ctrl+O 입력 후 엔터, 편집 파일에서 나가기는 Ctrl+X

 

아래 명령어를 입력해서 편집 파일을 연다.

$ sudo nano /etc/hostname

 

밑줄 친 부분을 위에서와 동일하게 원하는 서비스명으로 바꿔준다.

입력 후 저장은 Ctrl+O 입력 후 엔터, 편집 파일에서 나가기는 Ctrl+X

 

아래 명령어로 재부팅하고

$ sudo reboot

 

다시 접속해보면 HOSTNAME이 변경되어 있는 것을 확인할 수 있다.

 

아래 명령어로 HOSTNAME이 정상적으로 등록되었는지도 확인해보자

$ curl 등록한 호스트 이름

 

성공한 경우

- 아직 80포트로 실행된 서비스가 없음(Failed to connect to ~ port 80)이더라도 curl 호스트 이름으로 실행은 잘 되었다는 의미

 

실패한 경우

- 찾을 수 없는 주소라는 에러 발생

 


git 설치

다음 명령어로 Amazone Linux 서버에 git을 설치한다

$ sudo yum install git

 

설치가 완료된 후 깃 버전을 확인해보자.

$ git --version

 


OpenJDK 11 설치

다음 명령어로 Amazone Linux 서버에 OpenJDK 11을 설치한다

$ sudo amazon-linux-extras install java-openjdk11

 

설치가 완료된 후 자바 버전을 확인해보자.

$ java -version

 


Node.js 설치

참고 : 자습서: Amazon EC2 인스턴스에서 Node.js 설정

 

다음 명령어로 Amazone Linux 서버에 nvm(Node Version Manager)을 설치한다. 

nvm으로 각종 노드 버전을 설치하거나 전환할 수 있다.

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash

 

nvm을 활성화시킨다

# . ~/.nvm/nvm.sh

 

Node.js 최신 버전을 설치한다. Node.js를 설치하면 npm(Node Package Manager)도 설치된다.

$ nvm install node

 

다음 명령어로 Node.js가 올바르게 설치되고 실행되는지 테스트할 수 있다.

$ node -e "console.log('Running Node.js ' + process.version)"

 


Nginx 설치 및 설정

nginx is available in Amazon Linux Extra topic "nginx1"

Amazon Linux에서는 아래의 명령어로 nginx를 설치한다.

$ sudo amazon-linux-extras install nginx1

 

EC2 서비스의 NETWORK & SECURITY - Security Groups - Inbound rules에서 Edit inbound rules를 선택하고

Nginx가 사용하는 80 포트를 Security Groups에 추가한다.

 

Nginx로 React 배포하기

https://medium.com/@bdv111/aws-ec2%EC%97%90%EC%84%9C-nginx%EB%A1%9C-react-%EC%95%B1-%EC%A7%81%EC%A0%91-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0-c1e09639171e

 

AWS EC2에서 Nginx로 React 앱 직접 배포하기

React로 만든 앱을 AWS(Amazon Web Services)의 EC2를 이용해 Nginx로 배포하는 과정을 흐름에 따라 정리해보겠습니다. 물론 React 프로젝트 배포를 위해서는 정적 웹 호스팅을 지원하는 S3 등을 이용할 수도

medium.com