백앤드/배포

[포스코x코딩온] 웹개발자 입문 과정 7주차 | AWS

영최 2023. 4. 18. 14:27
728x90

1.AWS 란? 

 한마디로, 아마존에서 제공하는 클라우드 플랫폼이다.

 

 한국에서만 사용되는 NCP와는 달리

 AWS는 전세계적으로 광범위하게 사용되고 있으며,

 현재 세계 1위의 점유율을 차지하고 있다고 한다.

 

 장점으로는 손쉽게 클라우드 구축이 가능하다는 장점이 있다.

 또한 부가 기능이나 안정성 부문에서 AWS가 NCP부문에서 더 강점이 있다고 한다.

 

 

2.EC2 란? 

한마디로, AWS에서 제공하는 클라우드 컴퓨터 서비스. 즉, 컴퓨터다

Elastic Compute Cloud의 약자로, AWS 클라우드에서 확장 가능 컴퓨팅 용량을 제공한다.

Amazon EC2를 사용하면  원하는 수의 가상 서버를 구축하고,

보안 및 네트워킹을 구성하며 스토리지를 관리할 수 있다.

 

Amazon EC2에서는 확장 또는 축소를 통해 요구 사항 변경

또는 사용량 스파이크를 처리할 수 있으므로 트래픽을 예측할 필요성이 줄어든다.

 

 

3. 사용 방법 

 가.가입

 먼저 AWS 사이트에 접속해서 가입한다.

 주의할 점은 다 영어로 작성해야한다. 안그러면 계속 경고창이 뜨고 

 입력이 안된다..ㅎ

 이후 support 플랜에서는 [무료]를 선택하면 된다.

 그래도 1년 뒤에 요금이 청구될 수 있으니 사용하지 않을 거라면 반드시 1년 뒤에는 삭제하도록 하자

 

AWS 사이트 가입 페이지

 

 나.EC2 생성하기

 다음으로는 EC2를 생성해야하는데 https://aws.amazon.com/ko/ec2/ 에서

 1. [Amazon EC2 생성하기] 버튼을 누른다. 

 

Amazon  EC2 생성하기 페이지

 2. 다음으로 넘어가는 페이지에서 [인스턴스 시작]버튼을 누른다.

 

인스턴스 시작 버튼이 있는 페이지

 

 3. 다음으로 넘어가는 페이지에서 빨간 색 박스와 같이 설정한다.

  운영체제를 우분투로 설정했는데 다른 운영체제를 사용할 것이라면

  본인이 사용할 운영체제에 맞게 설정하면 된다.

서버이름 정하고, 운영체제 선택하기

  아래로 스크롤 하면 키 페어 생성하는 란이 나오는데, 이때 오른쪽에 있는 [새 키 페어 생성] 버튼을 누른다.

키페어 새로 생성하기

  버튼을 누르면 아래와 같은 페이지가 뜨는데 이때 키페어 이름을 입력하고 [키 페어 생성]버튼을 누르면

  .pem 파일로 키 페어 파일이 다운로드된다. 이때 이 파일을 !절대! 잃어버리지 않도록 하자

 

키페어 새로 생성하기 페이지

  다음으로는 네트워크 설정에서 [편집] 버튼을 누른다.

 

네트워크 설정

 

  다음으로 나오는 페이지에서 [보안 그룹 규칙 추가] 버튼을 누른다.

 

네트워크 설정 - 보안 그룹 규칙 추가

 

  그러면 [보안 그룹 규칙 2]로 새로운 토글이 생긴다.

  이후에 유형을 [HTTP]로 변경한다.

네트워크 설정 - 유형 설정

  마지막으로 [인스턴스 시작 버튼]을 누른다.

인스턴스 시작

 

  다음으로 인스턴스 페이지로 가면 [실행중]임을 확인할 수 있다.

  체크박스에 해당 인스턴스를 체크하면 해당 내용들을 확인할 수 있다.

인스턴스 생성 확인

 

 .인스턴스에 연결(MAC)

  위 페이지의 상단 부분의 [연결] 버튼을 클릭한다.

인스턴스 페이지 연결 버튼 클릭

  그러면 아래와 같은 페이지가 나온다. 

  복잡해보이지만 터미널에 아래와 같이 입력하면 연결된다.

  마지막 ssh -i ~  는 위의 페이지에서 마지막 줄과 동일하다.

 

cd .pem이 있는 경로입력 #ex) cd Desktop
chmod 400 키페어이름.pem #ex) chmod 400 awscodingon.pem
ssh -i "키페어이름.pem" ubuntu@IP주소 #ex) ssh -i "awscodingon.pem" ubuntu@ec2-00-00-000-000.ap-southeast-2.compute.amazonaws.com

  그러나 매번 이렇게  ssh -i ~ 로 입력해서 aws 연결하기가 귀찮으므로 아래와 같이 하면 ssh 이름 이런식으로 연결이 가능하다.

 

   +)ssh 닉네임으로 접속 설정하기

  (출처: https://velog.io/@chosj1526/AWS-Mac-M1-%EA%B8%B0%EB%B3%B8-%ED%84%B0%EB%AF%B8%EB%84%90%EB%A1%9C-SSH-%EC%A0%91%EC%86%8D)

 

   키페어 pem 파일을 ~/.ssh/로 복사한다.

cp [pem파일] ~/.ssh/

   pem키가 잘 복사되었는지 확인한다.

 

cd ~/.ssh/
ls

  복사된 pem키의 권한을 변경한다.

chmod 600 ~/.ssh/[pem키파일]

  권한을 변경하였다면, ~/.ssh 에 config 파일을 생성하고, 다음과 같이 채워넣는다.

  (편집기 - 입력할 때 'i' , 명령을 끝낼 때는 'esc', 쓰고저장하고 끝낼때 ':wq!')

vi ~/.ssh/config
Host [원하는 서비스명]
	HostName [ec2 공인 IP주소]
	User ubuntu
	IdentityFile ~/.ssh/[pem키 이름]

  생성된 config 파일은 실행 권한이 필요하기 때문에 권한을 설정한다.

chmod 700 ~/.ssh/config

  다음 명령어를 통해 접속이 성공하는지 확인하자.

ssh [config에 등록한 서비스명]

  이렇게 설정하면 이후부터는 터미널에 간단하게 ssh test 이런식으로 입력해서 서버에 연결이 가능해진다.

 

 .서버 기본 세팅

  sudo su를 통해 root 유저로 전환해서 일일이 sudo치지 않게 계정을 root로 바꿔준 후 

  node.js와 npm을 설치한다. 

  그런데 이때 우분투 18이 node.js와 호환이 안되므로 

  node.js 버전을 관리하는 nvm의 버전을 16으로 설치한다.

  이후 node.js 어플리케이션을 무중단 운영할 수 있도록 pm2를 설치해준다.

$ sudo su # root 유저 전환 
$ apt-get update -y # 운영체제 업데이트 및 패키지 리스트 업데이트 
$ sudo apt-get install nodejs # nodejs 설치 
$ sudo apt-get install npm # npm 설치 
 
# https://velog.io/@nonz/Ubuntu-에-nvm-으로-Node.js-설치 
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash 
$ source ~/.bashrc # 현재 세션에 nvm 실행할 수 있도록 적용 
$ nvm install 16.19.1 # node v16 설치 
$ nvm use 16.19.1 # node v16 사용 
 
$ npm install -g pm2 # pm2 설치

 

 .인바운드 규칙 설정

  aws의 공인IP:포트번호 로 사이트에 접속하기 위해서는 해당 포트 번호를 인바운드 규칙에서

  설정해 주어야한다. 설정하는 방법은 아래와 같다.

왼쪽 사이드바의 보안 그룹 클릭

  먼저 위와 같이 왼쪽 사이드 바의 [보안 그룹]을 클릭한다.

  다음으로 하단의 [인바운드 규칙 편집]을 클릭한다.

인바운드 규칙 편집

  다음으로 아래와 같이 포트번호를 설정하고 저장하면 된다.

사용자 지정 포트 설정

 

728x90