Infra/AWS

[AWS] EC2 애플리케이션 띄우기

제우제우 2024. 8. 24. 20:14

 

EC2 인스턴스 생성과정은 생략...!

 

PEM 키가 있는 위치로 이동

참고로 PEM 키 파일의 권한 설정을 해주는게 보안상 좋다.

chmod 600 jeulog.pem
  • chmod 600 명령어는 파일 소유자에게만 읽기 및 쓰기 권한을 부여하고, 다른 사용자에게는 권한을 부여하지 않는다.

권한이 제대로 설정되었는지 확인 

ls -la jeulog.pem
  • 권한이 -rw-------로 설정되어 있으면, 파일 소유자만 읽기 및 쓰기 권한을 가지며 다른 사용자에게는 권한이 없다는 것을 의미

본격적인 EC2 접속 방법 

ssh -i jeulog.pem ec2-user@3.34.53.251
  • SSH (Secure Shell): 클라이언트를 호출하는 명령어이다. SSH는 네트워크를 통해 안전하게 다른 컴퓨터에 접속하고 명령어를 실행할 수 있게 해준다.
  • -i jeulog.pem: -i 옵션은 SSH 클라이언트에게 인증에 사용할 개인 키 파일을 지정하도록 한다. jeulog.pem은 개인 키 파일의 이름. 이 파일은 EC2 인스턴스에 접속하기 위한 인증서 역할을 하며, PEM 형식의 SSH 키 파일이다. 
  • ec2-user@3.34.53.251: ec2-user는 SSH를 통해 접속할 원격 서버의 사용자 계정, 이 예제에서는 AWS EC2 인스턴스의 기본 사용자 계정으로 설정된 경우 3.34.53.251은 원격 서버의 IP 주소이다. 이 주소는 연결할 EC2 인스턴스의 공인 IP 주소(퍼블릭IPv4 주소)이다.
  • 서버 접근 설정: EC2 인스턴스의 보안 그룹과 네트워크 설정에서 SSH 접속을 허용하는 규칙이 설정되어 있어야 한다. 일반적으로 포트 22가 열려 있어야 한다.

접속 성공 화면 !

 

SSH 세션 종료하는 방법 

exit

AWS EC2에 파일 전송하기 

scp -i /c/Study/.ssh/jeulog.pem jeulog-0.0.1-SNAPSHOT.jar ec2-user@3.34.53.251:/home/ec2-user

  • Secure Copy Protocol (SCP): 파일을 원격 서버로 안전하게 복사하는 명령어
  • :/home/ec2-user: 원격 서버의 경로, 파일이 복사될 원격 서버의 디렉토리 경로

접속해서 전송된 파일 확인 

 

ec2 인스턴스에 있는 파일 -> 로컬로 이동 (연습 용도) 

// 파일 생성
touch abcd

// SSH ec2 세션 종료 
exit 

// ec2에 있는 /home/ec2-user 디렉토리에 있는 abcd 파일 현재 bash 경로에 다운 
scp -i /c/Study/.ssh/jeulog.pem ec2-user@3.34.53.251:/home/ec2-user/abcd ./

EC2에 애플리케이션 띄우기 

1. 접속하기 

 ssh -i /c/Study/.ssh/jeulog.pem ec2-user@3.34.53.251

 

2. 자바 설치하기 

일반적으로 2가지 방법이 있다. 

  • yum
  • amazon-linux-extras

yum, amazon-linux-extras Amazon Linux 운영 체제에서 패키지 관리와 소프트웨어 설치를 위한 도구이다. 

Amazon Linux는 주로 AWS(Amazon Web Services) 환경에서 사용되는 경량화된 리눅스 배포판이다. 

amazon-linux-extras

해당 명령어를 치면 이렇게 설치 가능한 프로그램들이 나온다.

amazon-linux-extras --help

 

install 명령어로 설치하면 된다.

그런데 amazon-linux-extras에서 설치 가능한 자바 버전은 11버전이다. 

내가 만든 부트 프로젝트는 자바 17버전을 사용해서 만들었다. 

어떻게 해결하지..?

 

Amazon Corretto 사용하기

Amazon Corretto는 AWS에서 제공하는 무료 OpenJDK 배포판이다. 

Java 17도 포함되어 있으므로, 이를 사용하면 손쉽게 설치할 수 있다고 한다. 

 

Amazon Corretto 17 설치

sudo yum install -y java-17-amazon-corretto-devel

 

이런 프로그램 설치 관련은 관리자 권한이 필요해서 sudo 명령어를 앞에 붙여야 한다. 

 

Amazon Corretto 17 설치 확인

java -version

성공적으로 설치 완료!

 

java 실행 파일 경로 확인

which java

3. 실행하기  

java -jar jeulog-0.0.1-SNAPSHOT.jar

실행 성공!

4. 인바운드 규칙 편집하기 

url에 퍼블릭 주소에 포트까지 잘 입력해서 접속 시도를 했지만 연결할 수 없음이 뜬다 왜일까?  

인바운드 규칙에 8080포트를 활성화 안 해서이다. 

 

 

인바운드 규칙 8080포트 추가 

5. 확인 작업

 성공 !

 

6. curl 사용해서 테스트 

curl

  • Client URL의 줄임말로, 명령줄 인터페이스를 통해 데이터 전송을 위한 다양한 프로토콜을 지원하는 도구
  • curl은 강력하고 유연한 기능을 제공하여 API 테스트, 파일 전송, 웹 페이지 다운로드 등 다양한 작업에 널리 사용
  • HTTP 요청: curl을 사용하여 GET, POST, PUT, DELETE 등 다양한 HTTP 요청을 수행할 수 있다.
  • 데이터 전송: 파일 업로드 및 다운로드, API 엔드포인트 호출 등 다양한 데이터 전송 작업을 지원
  • 보안 및 인증: SSL/TLS 암호화, 인증서 검증, HTTP 기본 인증, 토큰 인증 등 다양한 보안 옵션을 지원
  • 프로토콜 지원: HTTP(S), FTP, SFTP, SCP, SMB, POP3, IMAP 등 여러 프로토콜을 지원하여 광범위한 네트워크 작업을 처리할 수 있다.
  • 스크립트 작성: 쉘 스크립트에서 사용할 수 있으며, 자동화된 작업에 적합

 

게시글 1개 조회하기 

curl -X GET http://3.34.53.251:8080/posts/1

8. PostMan 사용해서 테스트

게시글 등록  

게시글 조회 

참고 자료 - 호돌맨 

https://www.inflearn.com/course/%ED%98%B8%EB%8F%8C%EB%A7%A8-%EC%9A%94%EC%A0%88%EB%B3%B5%ED%86%B5-%EA%B0%9C%EB%B0%9C%EC%87%BC

 

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS) 강의 | 호돌맨 - 인프런

호돌맨 | 단순히 애플리케이션 하나를 만드는데 끝나지 않습니다. Spring Boot를 활용한 백엔드부터 Vue.js 모던 프론트엔드 스택을 연동한 서비스 완성 A-Z를 보여드립니다., 🐯이제는 실전이다!🐯

www.inflearn.com

 

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

AWS 고정 아이피 추가하기  (0) 2024.08.25
AWS EC2 애플리케이션 프로세스 유지하기  (0) 2024.08.25