Server/AWS

[AWS] EC2를 사용해서 AWS 배포

재윤 2025. 1. 5. 17:43
반응형

aws 로그인 해서 인스턴스 검색

 

인스턴스 시작

 

 

 

공짜 버전

  • 인스턴스 유형은 프리티어를 사용하고 있다면 t2.micro 로 설정해주셔야 합니다.다른 유형으로 설정하면 과금요소가 추가됨

 

키페어 다운로드 했는데 내 Mac → Key에 있음

 

네트워크 설정

 

 

 

 

이제 생성한 인스턴스의 보안 그룹을 수정

보안 그룹이란?

AWS 에서 제공하는 방화벽으로 인바운드 규칙, 아웃바운드 규칙이 존재함

  • 인바운드 규칙(inbound) : 외부에서 EC2나 RDS 등의 내부로 접근할때 사용되는 방화벽 규칙
  • 아웃바운드 규칙(outbound) : EC2나 RDS 등의 내부에서 외부로 접근할때 사용되는 방화벽 규칙

우리는 EC2에 접속해서 서버를 띄우는것이 목적이기 때문에 인바운드 규칙만 건드려주도록 하자

EC2 메뉴의 네트워크 및 보안 탭의 보안 그룹 을 눌러 보안 그룹 세팅 창으로 들어간다

 

 

 

인바운드 규칙의 규칙추가

(여기서 0.0.0.0/0 은 Anywhere-IPv4 )

위에서부터 순서대로

  1. 스프링 부트 기반 서버를 열어줄것이기 때문에 사용자 지정으로 8080 포트를 설정해준 뒤 url을 아는 누구나 접속할수있도록 Anywhere-IPv4 로 설정
  2. 원격 EC2 인스턴스에 접속할때 사용되는 ssh 관련 방화벽으로 저는 밖에서도 접속할 때가 있으므로 저희집 고정 ip가 아닌 Anywhere-IPv4 로 설정 또한 ssh는 기본 포트 연결로 22번 포트가 사용
  3. HTTP 연결시 사용
  4. HTTPS 연결시 사용

아웃바운드 규칙은 따로 세팅해주지 않고 기본세팅으로 남기고 넘어가자

 

이제 만든 보안 그룹을 아까 만든 EC2에 설정해줄 차례

 

launch-wizard를 제거하고 저장

 

이제 발급 받은 ssh키로 Ec2 우분투 콘솔에 접속하기

  • 비번은 내 Mac 비밀번호 == sudo

 

  • 여기 들어가보면 이렇게 나오는데 내가 다운 받은 키랑 이거랑 매치해서 들어올 수 있는 거임.

 

이제 spring boot에서 내가 짠 코드를 빌드해서 aws에서 만든 ec2에 보내줘서 spring boot를 실행 시킬 거임.

scp로 전송하기

Kkrap.jar == awsTest

sudo scp -i {sshKey.pem의 위치} -r Kkrap.jar ubuntu@{EC2 IP}:/home/ubuntu

 

도착

이게 실행된 포트임 나온게

ubuntu@ip-172-31-10-107:~$ java -jar Kkrap.jar 1> log 2>&1 & 
[1] 1246

 

이렇게 스프링 나오는 거임

ubuntu@ip-172-31-10-107:~$ ls
Aws_Test  Kkrap.jar  log
ubuntu@ip-172-31-10-107:~$ cat log

  .   ____          _            __ _ _
 /\\\\ / ___'_ __ _ _(_)_ __  __ _ \\ \\ \\ \\
( ( )\\___ | '_ | '_| | '_ \\/ _` | \\ \\ \\ \\
 \\\\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\\__, | / / / /
 =========|_|==============|___/=/_/_/_/

 :: Spring Boot ::                (v3.3.2)

2024-09-28T19:06:26.504Z  INFO 1246 --- [awsTest] [           main] com.aws.awsTest.AwsTestApplication       : Starting AwsTestApplication v0.0.1-SNAPSHOT using Java 21.0.4 with PID 1246 (/home/ubuntu/Kkrap.jar started by ubuntu in /home/ubuntu)
2024-09-28T19:06:26.511Z  INFO 1246 --- [awsTest] [           main] com.aws.awsTest.AwsTestApplication       : No active profile set, falling back to 1 default profile: "default"
2024-09-28T19:06:29.494Z  INFO 1246 --- [awsTest] [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port 8080 (http)
2024-09-28T19:06:29.574Z  INFO 1246 --- [awsTest] [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2024-09-28T19:06:29.574Z  INFO 1246 --- [awsTest] [           main] o.apache.catalina.core.StandardEngine    : Starting Servlet engine: [Apache Tomcat/10.1.26]
2024-09-28T19:06:29.919Z  INFO 1246 --- [awsTest] [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2024-09-28T19:06:29.922Z  INFO 1246 --- [awsTest] [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 3265 ms
2024-09-28T19:06:31.478Z  INFO 1246 --- [awsTest] [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port 8080 (http) with context path '/'
2024-09-28T19:06:31.550Z  INFO 1246 --- [awsTest] [           main] com.aws.awsTest.AwsTestApplication       : Started AwsTestApplication in 6.274 seconds (process running for 8.071)
ubuntu@ip-172-31-10-107:~$ 

 

상태를 볼 수가 있다

ubuntu@ip-172-31-10-107:~$ tail -f log

 

  • log를 날짜별로 정리할 수 있음. md로 만들 수도 있으니.
    • 서버를 2개 만들어서 하나 배포 하나는 잠시 멈추고 수정하고 멈춘 거 다시 배포 하던 거 멈춤
    • 강민 선배 → 점검이라는 게 로그 파일 수정하는 거 있으면 자동 배포도 해주고 하는 거 배포 후에 완료되었다. 이게 배포 되더라도 2~3시간 뒤 본다 → log 보고 상태 확임.
ubuntu@ip-172-31-10-107:~$ java -jar Kkrap.jar 1> log 2>&1 & 
[1] 1246
ubuntu@ip-172-31-10-107:~$ ls
Aws_Test  Kkrap.jar  log

 

도움을 받은 글

SpringBoot 프로젝트 EC2 배포하기

 

SpringBoot 프로젝트 EC2 배포하기

깃헙에 있는 프로젝트를 AWS EC2에 git clone을 통해 내려받아 jar 파일 빌드를 해보겠습니다.(EC2 인스턴스는 우분투로 진행합니다. 또한 따로 배포 시스템을 구축하지 않고 수동으로 배포하는것만

velog.io

 

반응형

'Server > AWS' 카테고리의 다른 글

[AWS] EC2에 postgreSQL 설치  (0) 2025.01.06