minlog
article thumbnail

1. AWS 가입 및 가상 클라우드 서버 대여

1-1. AWS 가입

  • AWS 사이트 가입

  • 결제 수단 등록

  • 헤더 우측상단 지역 선택 (서울)

    [무료 클라우드 컴퓨팅 서비스 - AWS 프리 티어

Q: AWS 프리 티어란 무엇입니까? AWS 프리 티어는 고객에게 서비스별로 지정된 한도 내에서 무료로 AWS 서비스를 살펴보고 사용해 볼 수 있는 기능을 제공합니다. 프리 티어는 12개월 프리 티어, 상

aws.amazon.com](https://aws.amazon.com/ko/free/?trk=fa2d6ba3-df80-4d24-a453-bf30ad163af9&sc_channel=ps&ef_id=Cj0KCQjw84anBhCtARIsAISI-xfd6bmwhTcpE8XpQN2g-e0au-WR-BTLNUQ2bHozni2tQs2vZcmdJ4kaAjY_EALw_wcB:G:s&s_kwcid=AL!4422!3!563761819834!e!!g!!aws!15286221779!129400439466&all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc&awsf.Free%20Tier%20Types=*all&awsf.Free%20Tier%20Categories=*all)

1-2. AWS 클라우드의 가상서버 사용

1) EC2 접속

2) 우측 인스턴스 페이지 이동

3) 인스턴스 시작 버튼 클릭

  • 애플리케이션 및 OS 이미지(Amazon Machine Image) : 우분투 사용
  • 인스턴스 유형 - 프리티어 사용
  • 스토리지 추가 - 기본 8GB 프리티어 최대 (30GB)
  • 키 페어 생성 : 생성된 키 파일을 안전한 곳에 보관해야함. 연결시 필요하며 다시 다운 받을 수 없다.
    • 키페어 이름 : 프로젝트 명 등..
    • 키페어 유형 : RSA
    • 프라이빗 키파일 형식 : .pem
  • 인스턴스 시작

1-3. AWS 클라우드의 가상서버 설정

1) 퍼블릭 IP 고정 아이피로 설정

컴퓨터를 종료했다가 키더라도 변경이 없이 이용가능하다.

기존 퍼블릭 IP는 변동되는 아이피로 탄력적(고정) IP로 설정해준다.

  • 네트워크 및 보안 > 탄력적 IP > 상단 탄력적 IP 주소할당 버튼 클릭
  • 상단 '작업' 셀렉트에서 > 탄력적 IP 주소 연결 > 만들었던 인스턴스에 연결하여준다.

1-4. DB 연결을 위한 인바운드 규칙 추가

- MYSQL/Aurora , 사용자

2. 가상 클라우드 접근 툴 다운로드

2-1. putty

빌린 서버의 ssh프로토콜 터미널로 접근 할수 있게 해주는 프로그램

[Download PuTTY: latest release (0.78)

This page contains download links for the latest released version of PuTTY. Currently this is 0.78, released on 2022-10-29. When new releases come out, this page will update to contain the latest, so this is a good page to bookmark or link to. Alternativel

www.chiark.greenend.org.uk](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)

2-1. winscp

서버의 ftp 로 접근할 수 있게 해주는 프로그램

https://winscp.net/eng/download.php

[WinSCP :: Official Site :: Download

WinSCP 6.1 Download WinSCP 6.1 is a major application update. New features and enhancements include: Local file manager mode (two local panels). Windows 11 flat style graphics. SSH core upgraded to PuTTY 0.78. That includes support for OpenSSH certificates

winscp.net](https://winscp.net/eng/download.php)

2-3. winscp 와 putty 연동

  • winscp 창에서 control + alt 또는 톱니바퀴 아이콘 (설정)
  • 통합 > 프로그램 > putty 설치 경로 연결

※ 필요한 설치와 명령을 내리기 위해서는 putty 터미널 접속 (번개 모양)하여 설정할 수 있다.

3. 가상 클라우드 접근 및 설정변경

3-1. winscp 가상 서버 연결

  • 호스트 이름 : AWS 생성한 고정 IP
  • 사용자 이름 : 우분투를 빌렸을 경우 ubuntu
  • 비밀번호: 인스턴스 서버 생성시 다운받았던 키페어 사용
    • 고급 > 인증 > 개인키 파일 > 경로를 넣어주면 된다. (경로에서 모든 개인키 파일로 파일 찾기)

3-2. putty 터미널에서 Backend 설치

  • root로 계정 변환 :sudo su
  • ubuntu 업데이트 : apt-get update
  • 웹서버 설치 : apt-get install nginx
    • 포트 번호로 사이트에 들어갈 수 있는데, aws에서 설정이 필요하다.
    • AWS 보안 > 인바운드 규칙 > 보안그룹
    • 인바운드 규칙편집 > 규칙추가 > HTTP> Anywhere Ipv4 저장

  • java 설치
    • 현제 자바 버전 확인
java -version
  • 필요한 자바 버전 설치
sudo apt update
sudo apt install openjdk-17-jre-headless
  • node.js 설치 : apt-get install nodejs
    • 노드 버전 업데이트
  • 현제 버전 및 설치 확인
    • node -v
    • npm -v

3-2. putty 터미널에서 DB 설치(MySQL)

1) mysql 설치

sudo apt-get install mysql-server

2) mysql 외부 접속 설정

로컬 컴퓨터에서 mysql 접속이 가능하도록 수정이 필요하다.

$ /usr/bin/mysql -u root -p

기본적으로 password는 존재 하지 않는다 enter 시 접속 이 가능한데, 초기에 루트 계정 비밀번호 설정 이 필요하다.

3) root 계정 비밀번호 변경

ALTER USER 'root'@'localhost' IDENTIFIED BY '새로운비밀번호'; 
FLUSH PRIVILEGES;

4) 모든 IP 허용 (프로젝트에서 사용하는 계정을 생성하고 권한을 부여해준다.)

root로 접속해도 되지만 root가 아닌 별도의 아이디를 사용하는 것이 보안상 유리하다.

모든 % ip에서 허용 , localhost는 포함되지 않는다.

mysql> create user 'root'@'%' identified by 'password';
mysql> grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;

- 추가로 프로젝트에서 사용하는 데이터 베이스도 생성해준다.

CREATE DATABASE travl_db;

5) LISTEN IP 대역 변경

mysql 설정 파일을 수정해야한다.

- 경로 접속

cd /etc/mysql/

- 내부 파일을 확인하고 파일이 존재한다면 열기

vi /etc/mysql/mysql.conf.d/mysqld.cnf

- 파일 수정 ( i > # 주석처리 )수정 완료 = esc

  • 저장하고 나가가기 (:wq!)
  • 강제 저장 (w!)
  • 혹시 readonly로 에러가 난다면 sudo 계정으로 파일을 열어 수정 후 강제 저장을 해주면 된다.
# bind-address = 127.0.0.1
또는 
bind-address = 0.0.0.0

- mysql 재 시작 : service mysql restart

4. mysql Workbench 를통해 DB접속

mysql외부 접속시 클라이언트 프로그램이 필요.

4-1. 설치 mysql Workbench

로그인 필요없이 다운로드 버튼 클릭

https://dev.mysql.com/downloads/workbench/

[MySQL :: Download MySQL Workbench

Select Operating System: Select Operating System… Microsoft Windows Ubuntu Linux Red Hat Enterprise Linux / Oracle Linux Fedora macOS Source Code Select OS Version: All Windows (x86, 64-bit) Recommended Download: Other Downloads: Windows (x86, 64-bit), M

dev.mysql.com](https://dev.mysql.com/downloads/workbench/)

4-2. 서버 DB 연결 MySQL connections + 버튼 클릭

  • Hostname : 생성한 인스턴스 ip
  • username : 외부 접속을 설정한 계정
  • 비밀번호 : 계정 비밀번호

test connection : 커넥션이 안된다면 port문제 . (AWS 인바운드 규칙 추가 필요)

5. 프로젝트 배포

5-1. 기본 실행

터미널을 닫을시 서버가 종료된다.

java -jar 프로젝트경로/[프로젝트 이름]-0.0.1-SNAPSHOT.jar

5-2. 백그라운드 실행(screen)

터미널을 닫아도 서버를 계속 사용할 수 있는 방법이다.

1) screen 세션 생성

screen -S test

2) screen **세션 리스트 확인**

screen -ls

3) screen 세션 접속(Attached)

screen -r test

4) screen에서 실행 서버 열기

nohup java -jar [프로젝트 이름]-0.0.1-SNAPSHOT.jar &

5) screen Attached 세션에서 빠져나가기(Detach) / 콘솔 나가기

ctrl+a, d
exit;

5-3. 백그라운드 실행(sbb - nano)

1)터미널 sbb 폴더 생성

경로 : home / ubuntu / sbb

2) 프로젝트 jar 파일 넣기

3) nano 편집기 명령어 수행
nano start.sh

  • start.sh 파일 내용 편집
    아래 내용을 입력 하고 <Ctrl+O> 파일 저장
    <Ctrl+X> 편집기 종료

JAR 변수는 배포파일명이고 LOG 변수는 로그를 출력할 파일명이다.

#!/bin/bash

JAR=자르파일명.jar
LOG=/home/ubuntu/sbb/sbb.log

nohup java -jar $JAR > $LOG 2>&1 &

*4) 스크립트명 실행권한부여 *

chmod +x start.sh

*5) 서버 실행 *
./start.sh

5-4. 백그라운드 로그 확인

nohup.out은 nohup으로 실행한 애플리케이션의 로그를 볼 수 있는 파일이다.

종료하고 싶은 경우 control + c하면 애플리케이션 종료 없이, 로그 보기만 종료할 수 있다.

tail -f nohup.out

5-5. 백그라운드 실행 종료

- 백그라운드 실행을 종료할 때는 실행 중인 포트에서 동작하고 있는 프로세스 id를 파악해서 종료시켜야 한다.

sudo lsof -t -i:8087

- 프로세스 종료

kill -9 [프로세스 id]
profile

minlog

@jimin-log

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!