배포

AWS EC2 (Elastic Compute Cloud) 배포하기

옴악핫세 2023. 5. 10. 07:04

서버에 배포하는 방법은 정말 여러가지가 있습니다.

저는 그 많은 방법 중 EC2에 배포하는 방법 그리고 로컬에서 터미널을 이용한 접근에 대해 설명하겠습니다.

EC2 인스턴스 생성

EC2를 만드는 방법은 스파르타 강의 혹은 구글링을 통해서 쉽게 알 수 있으니 넘어가겠습니다.

EC2 터미널 접속

저는 윈도우 유저라 윈도우에서 터미널을 통한 접속 방법에 대해 설명하겠습니다.

맥은 iTerm 이 있으니 쉽게 할 수 있다 생각합니다.

윈도우에서 터미널을 통한 접속이 굉장히 어렵기 때문에 글 하나 공유드립니다.

저도 아래 글을 보고 접속에 성공했습니다.

https://wookim789.tistory.com/34

 

윈도우 터미널을 이용해 EC2 접속하기 (5)

자 지난 글에서 EC2 인스턴스를 띄워 보았다. 이제 내 로컬환경(내 pc)에서 aws의 ec2에 접속해보겠다. 방법은 여러가지이다. 이전에 설명한 SSH 방식으로 접근할 것인데, mac이라면 터미널에서 ssh 명

wookim789.tistory.com

EC2 배포하기

EC2에 접속했다면 여러분의 레포지토리를 clone을 통해 받아와 실행만 하면 끝납니다.

대신 환경 설정을 몇 가지 해야 됩니다.

  • java 설치

이 글을 보고 그대로 했던 것 같습니다.

https://veneas.tistory.com/entry/Linux-CentOS7-%EC%9B%90%ED%95%98%EB%8A%94-%ED%8A%B9%EC%A0%95-%EB%B2%84%EC%A0%84-Javajdk-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0-wget

 

[Linux] CentOS7 원하는 특정 버전 Java(jdk) 설치하기 - wget

목차 0. 설치 전 확인 - 이 게시물은 Java(jdk)가 설치되어 있지 않다는 가정하에 진행합니다. 이미 Java가 설치되어 있다면 제거 후 설치를 해줍니다. (CentOS 7을 설치하면 기본적으로 Java(jdk)가 설치

veneas.tistory.com

위 글을 잘 따라했다면 아래 2개의 명령어가 잘 실행되는지 확인해보자.

 

  • git 설치

아마 git도 없을 수 있습니다. 설치합시다.

sudo yum install git
git --version

그리고 레포지토리를 clone 받아온다.

혹시 ssh-keygen 관련 에러가 발생할 수 있는데… 직접 찾아보길 바란다. 모든 걸 알려주기 귀찮앙…

  • 프로젝트 build
./gradlew build

기본적으로 gradlew build를 실행하면 test까지 같이 실행된다.

테스트 실행을 원치 않는다면

./gradlew build -x test

저희는 테스트에 jasypt.password를 외부에서 주입해야 하는데 이때 프로퍼티 값으로 넣어주면 되어

./gradlew build -Pjasypt.password=(비밀키값)

위와 같이 실행했다.

  • 프로젝트 실행(= 서버에 배포)

/build/libs 로 이동해서 jar 파일을 찾아 실행시킨다.

java -jar -Dspring.config.activate=(실행하는profile이름) (빌드된파일이름)-SNAPSHOT.jar &

생략이 많겠지만 핵심 순서는 거의 다 있다고 생각합니다.

모두 배포 화이팅!

 

 

 

클라우드 서비스의 종류

1. IaaS (Infrastructure as a Service)

하드웨어 인프라를 인터넷을 통해 제공하는 서비스

Ex) AWS EC2, Microsoft Azure, Google Compute Engine 

 

2. PaaS (Platform as a Service)

애플리케이션을 개발, 실행, 관리하기 위한 플랫폼을 인터넷을 통해 제공하는 서비스

Ex) AWS Elastic Beanstalk, Google App Engine

 

3. SaaS (Software as a Service)

사용자에게 완전한 애플리케이션을 제공하며, 이 애플리케이션은 클라우드 제공업체의 서버에서 실행됨

Ex) Google 드라이브, Microsoft  Office 365 등...

 

 

AWS EC2

IaaS 서비스 중 하나로, 가상 서버 인스턴스를 제공함 (가상화된 컴퓨터 환경을 인스턴스라고 칭함)

EC2 인스턴스는 다양한 운영 체제 (예: Linux, Windows)와 인스턴스 유형 (예: 범용, 컴퓨팅 최적화, 메모리 최적화)을 지원합니다.

EC2는 다양한 용도로 사용될 수 있으며, 주요 사용 사례는 다음과 같습니다.

  • 웹 애플리케이션 호스팅
  • 데이터베이스 호스팅
  • 컴퓨팅 작업 (예: 데이터 분석, 머신 러닝)
  • 애플리케이션 테스트 및 개발

다양한 EC2의 옵션들

  1. 인스턴스 유형 (Instance Types) - 인스턴스 유형은 서버에 할당되는 CPU, 메모리, 스토리지 및 네트워크 리소스와 같은 기본 성능 특성을 결정합니다. 예를 들어, 일부 인스턴스 유형은 컴퓨팅 작업에 적합하고, 다른 유형은 메모리 집약적인 작업에 적합합니다.
  2. 운영 체제 (Operating System) - EC2 인스턴스는 다양한 운영 체제를 지원합니다. 예를 들어, Amazon Linux, Ubuntu, Windows 등이 있습니다.
  3. 스토리지 옵션 (Storage Options) - EC2 인스턴스에는 인스턴스 스토어, Amazon EBS 및 Amazon S3와 같은 다양한 스토리지 옵션이 있습니다.
  4. 보안 그룹 (Security Groups) - 보안 그룹은 인바운드 및 아웃바운드 트래픽을 제어하는 방화벽 규칙입니다. 각 보안 그룹은 포트 범위, 프로토콜 및 허용되는 IP 주소 범위를 정의할 수 있습니다.
  5. 키 페어 (Key Pair) - 키 페어는 EC2 인스턴스에 대한 SSH 액세스를 허용합니다. 키 페어를 만들면 EC2 인스턴스를 시작할 때 키 페어를 선택할 수 있습니다.
  6. 탄력적 IP 주소 (Elastic IP Address) - 탄력적 IP 주소는 EC2 인스턴스에 고정 IP 주소를 할당합니다. 이는 EC2 인스턴스를 중지하거나 시작할 때마다 IP 주소가 변경되는 것을 방지할 수 있습니다.
  7. 사용 가능한 영역 (Availability Zones) - EC2 인스턴스는 여러 가용 영역에서 실행될 수 있습니다. 이는 장애 대응 및 고가용성을 위해 중요합니다.

 

 

 

https://teamsparta.notion.site/99-AWS-EC2-16cad90fd4cc46bb84483714f24db338

 

[항해99] AWS EC2 배포 가이드

01. 내 프로젝트를 서버에 올리기

teamsparta.notion.site

 

 

https://velog.io/@hidaehyunlee/%EA%B3%B5%EC%9D%B8Public-%EC%82%AC%EC%84%A4Private-IP%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90

 

공인(Public) && 사설(Private) IP의 차이점

💻➡🌏 : 사설 IP를 할당받은 스마트폰 혹은 개인 PC가 데이터 패킷을 인터넷으로 전송하면, 라우터(공유기)가 해당 사설 IP를 공인 IP로 바꿔서 전송한다.

velog.io

 

 

https://blog.1nfra.kr/200#:~:text=%ED%8F%AC%ED%8A%B8%20%EB%B2%88%ED%98%B8%EB%8A%94%20%EC%BB%B4%ED%93%A8%ED%84%B0%20%EC%95%88%EC%97%90%EC%84%9C,%EC%99%80%20%EB%AA%A9%EC%A0%81%EC%A7%80%20%ED%8F%AC%ED%8A%B8%EB%A1%9C%20%EB%93%A4%EC%96%B4%EA%B0%84%EB%8B%A4.

 

[네트워크] 포트번호란?

포트 번호란? 포트 번호는 컴퓨터 안에서 작동하는 애플리케이션을 식별하기 위해 사용하는 숫자이다. 포트 번호는 0~65535 까지 숫자로 범위에 따라 용도가 정해져 있다. 포트 번호는 세그먼트를

blog.1nfra.kr

 

https://teamsparta.notion.site/3-Elastic-Compute-Cloud-24e332f3c6aa42f59067341a3bd5cef7

 

3 : Elastic Compute Cloud

[목차]

teamsparta.notion.site