SEB_BE_43 / 23.03.29 회고

rse·2023년 3월 29일
0

코드스테이츠_BE_43

목록 보기
61/65

오늘

  • Cloud

원래는 전산실에 컴퓨터를 배치해서 서비스를 제공했었다.
하지만 그렇게 관리를 하면 공간도 많이 필요하게 될 것이며, 전산실에 문제가 생겼을 경우 모든 서버가 다 다운될 수도 있는 큰 단점이 있다.

클라우드

사용 이유

  • 자원 절약 : 클라우드 서비스 제공 업체가 컴퓨팅 자원을 관리하므로 자체적으로 컴퓨터를 구매하거나 관리 할 필요가 없다

  • 유연성 : 필요한 만큼의 컴퓨팅 자원을 쓸 수 있다.

  • 안정성 : 안정적이고 빠른 인터넷 연결을 제공한다.

  • 비용 절감 : pc방에서 원하는 시간만큼 결제하듯이 필요한 만큼의 자원만 결제 할 수 있다.

단점

  • 보안 : 클라우드 서비스 제공 업체가 데이터를 관리하므로 데이터 보안 문제가 발생 될 가능성이 있다.

  • 의존성 : 클라우드 제공 업체에 의존하게 되므로 서비스가 중단 되는 경우에는 문제가 발생 할 수 있다.

  • 호환성 : 클라우드 제공 업체마다 호환성이 다를 수 있으므로 이전 시스템과 호환성 문제가 발생 할 수 있다.

대표적인 서비스 제공 범위

SaaS (Software as a Service)
= 클라우드 제공자가 당장 사용 가능한 소프트웨어를 제공하는 경우.

PaaS (Platform as a Service)
= 클라우드 제공자가 데이터데이스, 개발 플랫폼까지 제공하는 경우.

IaaS (Infrastructure as a Service)
= 클라우드 제공자가 가상 컴퓨터까지 제공하는 경우.

AWS Cloud

EC2 (Elastic Compute Cloud)

아마존에서 제공하는 클라우드 컴퓨팅 서비스이다.
서버, 스토리지, 데이터베이스 등의 컴퓨팅 서비스를 제공한다.

한마디로 한개의 컴퓨터를 대여하는 것과 같다.

장점

  • 구성하는데 필요한 시간이 짧다.

  • 용도에 따라서 필요한 운영체제를 선택 할 수 있다.

  • 컴퓨터와 동일하게 사용 할 수 있다.
    인스턴스는 1대의 컴퓨터를 의미하는 단어이고, AWS에서 컴퓨터를 빌리는 것을 인스턴스 생성이라고 한다.

  • 소프트웨어 구성이 기재된 템플릿이다.

RDS (Relational Database Service)

아마존에서 제공하는 관계형 데이터 베이스이다.

왜 EC2에 데이터베이스 엔진을 설치하지 않고 굳이 RDS 를 사용하는가?

EC2에 엔진을 설치 할 경우, 데이터베이스와 관련해서 자동으로 관리를 담당하는 부분이 매우 적다.
그렇기에 사용자의 시간을 투자해서 일일이 신경써줘야 한다.
또한, 가용성과 내구성이 확보되어있지 않아 데이터베이스에 저장된 데이터가 유실되거나
정상적으로 사용하지 못 할 가능성도 있다.

S3 (Simple Storage Service)

클라우드 스토리지 서비스.
인터넷 공간에 데이터를 저장하는 저장소이다.
ex) 네이버 클라우드, 마이크로소프트 Onedrive 등...

서버 배포

아마존 인스턴스에 연결하자.

$ sudo apt install openjdk-11-jre-headless
명령어로 자바를 설치하자.

git과 연결하기 위해 ssh 정보를 생성하자.

clone 이 성공적으로 완료되면 ls 로 검색했을 때 파일이 보일 것이다.

폴더로 들어가서 실행시키면

이렇게 나올 것이다.

Shell Script

하지만 매번 실행시킨 창을 열어둬야한다면 불편할 것이다.

그래서 shell script 라는 실행 스크립트를 생성 할 것이다.

Shell Script 는 운영체제를 위한 스크립트라고 생각하면 좋을 것이다.

#!/bin/bash

# DeplyServer-0.0.1-SNAPSHOT.jar 가 실행중이라면 프로세스를 종료한다.
ps -ef | grep "DeployServer-0.0.1-SNAPSHOT.jar" | grep -v grep | awk '{print $2}' | xargs kill -9 2> /dev/null

# 종료 이력을 파악해서 적절한 문구를 출력한다.
if [ $? -eq 0 ];then
    echo "my-application Stop Success"
else
    echo "my-application Not Running"
fi

# 빌드를 다시 실행하기 위한 과정을 진행한다.
echo "re-build"
./gradlew build

# DeployServer-0.0.1-SNAPSHOT.jar 를 다시 실행하기 위한 과정
echo "my-application Restart!"
echo $1

# nohup 명령어를 사용해 백그라운드에서도 실행한다.
nohup java -jar build/libs/DeployServer-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev > /dev/null 2>&1 &

postman 에서도 잘 확인.

profile
기록을 합시다

0개의 댓글