AWS EC2 (Elastic Compute Cloud) 배포하기
서버에 배포하는 방법은 정말 여러가지가 있습니다.
저는 그 많은 방법 중 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 설치
이 글을 보고 그대로 했던 것 같습니다.
[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의 옵션들
- 인스턴스 유형 (Instance Types) - 인스턴스 유형은 서버에 할당되는 CPU, 메모리, 스토리지 및 네트워크 리소스와 같은 기본 성능 특성을 결정합니다. 예를 들어, 일부 인스턴스 유형은 컴퓨팅 작업에 적합하고, 다른 유형은 메모리 집약적인 작업에 적합합니다.
- 운영 체제 (Operating System) - EC2 인스턴스는 다양한 운영 체제를 지원합니다. 예를 들어, Amazon Linux, Ubuntu, Windows 등이 있습니다.
- 스토리지 옵션 (Storage Options) - EC2 인스턴스에는 인스턴스 스토어, Amazon EBS 및 Amazon S3와 같은 다양한 스토리지 옵션이 있습니다.
- 보안 그룹 (Security Groups) - 보안 그룹은 인바운드 및 아웃바운드 트래픽을 제어하는 방화벽 규칙입니다. 각 보안 그룹은 포트 범위, 프로토콜 및 허용되는 IP 주소 범위를 정의할 수 있습니다.
- 키 페어 (Key Pair) - 키 페어는 EC2 인스턴스에 대한 SSH 액세스를 허용합니다. 키 페어를 만들면 EC2 인스턴스를 시작할 때 키 페어를 선택할 수 있습니다.
- 탄력적 IP 주소 (Elastic IP Address) - 탄력적 IP 주소는 EC2 인스턴스에 고정 IP 주소를 할당합니다. 이는 EC2 인스턴스를 중지하거나 시작할 때마다 IP 주소가 변경되는 것을 방지할 수 있습니다.
- 사용 가능한 영역 (Availability Zones) - EC2 인스턴스는 여러 가용 영역에서 실행될 수 있습니다. 이는 장애 대응 및 고가용성을 위해 중요합니다.
https://teamsparta.notion.site/99-AWS-EC2-16cad90fd4cc46bb84483714f24db338
[항해99] AWS EC2 배포 가이드
01. 내 프로젝트를 서버에 올리기
teamsparta.notion.site
공인(Public) && 사설(Private) IP의 차이점
💻➡🌏 : 사설 IP를 할당받은 스마트폰 혹은 개인 PC가 데이터 패킷을 인터넷으로 전송하면, 라우터(공유기)가 해당 사설 IP를 공인 IP로 바꿔서 전송한다.
velog.io
[네트워크] 포트번호란?
포트 번호란? 포트 번호는 컴퓨터 안에서 작동하는 애플리케이션을 식별하기 위해 사용하는 숫자이다. 포트 번호는 0~65535 까지 숫자로 범위에 따라 용도가 정해져 있다. 포트 번호는 세그먼트를
blog.1nfra.kr
https://teamsparta.notion.site/3-Elastic-Compute-Cloud-24e332f3c6aa42f59067341a3bd5cef7
3 : Elastic Compute Cloud
[목차]
teamsparta.notion.site