원인

매번 github에서 git clone 명령어를 통해 정보를 받다보니, 보안으로 인한 properties 추가 혹은 test 폴더 제거 등 추가적으로 putty를 통해 ec2 내부에 접속해서 진행해야하는 작업이 많았습니다.

 

그에 따라 편하게 실행이 가능한 코드를 로컬 컴퓨터 내부에서 작업하여 바로 jar 파일을 전송 후 실행만 하는 방식을 이용해서 처리의 불편함과 속도를 높여보았습니다.

 

진행

  • 먼저, 만든 spring 서버 프로젝트에서 test 폴더를 지워서 jar 파일로 만들 수 있는 형태를 취하였습니다.
  • 마지막으로 properties를 확인하면서 프로젝트를 확인합니다.
  • 그리고 프로젝트 내부로 들어와서 "./gradlew clean build" 명령어를 통해서 jar 파일의 형태로 변경시킵니다.
  • 해당 jar 파일을 원하는 곳에 이동시키기 위해서 권한을 향상시키는 과정이 필요할 수도 있습니다.
  • 저는 window라서 해당 파일의 속성 -> 보안 -> 고급 -> 추가(D) 에서 Everyone이 접근하며, 권한을 가지게 설정하였습니다.
  • fileZila에 접속한 뒤, aws에서 설정한 ip와 <ubuntu, key>를 이용해서 ec2에 접근합니다.
  • putty로 이동할 폴더의 바깥까지 도달한 뒤에 "chmod -R 775 폴더명"로 해당 폴더의 권한을 향상시켜서 외부에서 파일이 삽입될 수 있게 수정합니다.
  • 그 후, 원하는 파일을 끌어서 원하는 자리에 배치시키면 잘 전송될 것 입니다.
  • 다시 putty로 가서 jar을 실행시키는 "java -jar 프로젝트명-0.0.1-SNAPSHOT.jar"를 시켜주시면 완성입니다!

 

나중

해당 부분은 jar 파일을 올리기 위해서 elastic Beanstalk를 이용하는 방식도 있지만, 해당 내용은 다음에 작성해보겠습니다!

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

[AWS] RDS + EC2  (0) 2023.03.14
[AWS] 알림 설정  (0) 2023.03.14

당연히 기본적으로 aws 계정이 있어야 하며, 해당 과정을 진행했다고 가정하고 아래의 내용을 진행하면 됩니다.

 

RDS

먼저, 검색창에 RDS를 넣어서 아래의 페이지로 이동하면, 보이는 데이터베이스 생성 버튼을 누르면 됩니다.

잠시 로딩 시간이 지나가면, 아래의 창으로 넘어가게 됩니다.

 

해당 화면에서 default 값은 제외하고, 어떤 방식으로 진행해야하는지 설명드리겠습니다.

우선 엔진옵션에서 DB를 설정해야하며, 저는 PostgreSQL을 선택하겠습니다.

 

 

다음으로, 템플릿프리 티어로 설정해야지 요금 부과가 되지 않습니다.

 

 

설정에서 DB 인스턴스 식별자를 프로젝트 이름 pointer으로 설정하고, 마스터 암호8자이상으로 설정합니다.

이것은 나중에 datagrip으로 RDS를 연결시에 사용할 비밀번호입니다.

 

 

스토리지는 기본으로 할당된 스토리지 20GiB, 최대 스토리지 임계값1000GiB인지 확인합니다.

 

 

연결에서는 DB 서브넷 그룹보안그룹이 모두 default라는 것을 확인합니다.

 

 

그리고 연결퍼블릭 액세스로 바꾸어서 datagrip에서 접근할 수 있게 해야합니다.

 

 

나머지는 default 값으로 놔두고, 이제는 데이터베이스 생성 버튼을 누르면, 시간이 소요된 후 생성됩니다.

 

 

EC2

검색창에 EC2를 넣어서 아래의 페이지로 이동하면, 보이는 인스턴스 시작 버튼을 누르면 됩니다.

잠시 로딩 시간이 지나가면, 아래의 창으로 넘어가게 됩니다.

 

애플리케이션 및 OS 이미Ubuntu를 선택하고, 아래에 프리티어 사용 가능인지 확인합니다.

 

 

키 페어에서 새 키 페어 생성 버튼을 누르면, 아래의 창이 보입니다.

해당 페이지에서 키 페어 이름을 설정 후 키 페어 생성 버튼을 눌러서 키 페어를 다운 받습니다.

 

 

여기서도 나머지는 default로 해두고, 인스턴스 시작 버튼을 누르면 바로 인스턴스가 생성됩니다.

 

 

 

탄력적 IP

EC2에게 ip를 할당하기 위해서 EC2 화면에서 왼쪽 바 > 탄력적 IP에 들어갑니다.

 

 

탄력적 IP 주소 할당 버튼을 누르면, 아래의 화면이 보이고 할당 버튼을 통해 탄력적 IP 주소를 만들 수 있습니다.

 

 

* 주의 : 탄력적 IP는 프리티어에서 1개만 만들 수 있으며, 요금이 부과되지 않으려면 EC2와 바로 연결해야 합니다!

 

EC2 - 탄력적 IP 연결

위의 과정을 위해서 탄력적 IP 주소 메인 화면에서 작업 버튼 > 탄력적 IP 주소 연결을 누릅니다.

 

 

 

아래의 화면에서 인스턴스 부분에서 위에서 만든 (pointer) 인스턴스를 찾아넣고, 연결을 진행하면 됩니다.

 

 

보안그룹 : EC2-RDS 연결

탄력적 IP 바로 위에 있는 보안 그룹으로 들어가면, 아래 화면이 보입니다.

default는 RDS의 보안그룹이기에 남은 1개인 launch-wizard-1은 EC2의 보안그룹입니다.

 

그리하여 우선 EC2 보안 그룹 ID를 클릭해 들어가서 인바운드 규칙 편집 버튼을 누르면, 아래 화면이 보입니다.

 

 

우선 기본적으로 존재하는 HTTP 유형의 80 포트는 내버려두고,

그외로 4가지 보안 그룹으로 총 5개의 그룹이 존재하게 만듭니다.

 

저희는 PostgreSQL과 연결할 것이므로 규칙 추가 버튼을 통해서 2개를 생성합니다.

1. 유형 : PostgreSQL / 소스 : 내 IP

2. 유형 : PostgreSQL / 소스 : 사용자 지정 / 검색 : RDS와 연결된 보안그룹(default) 

-> RDS와 EC2 보안 그룹을 서로 연결해주는 과정을 통해서 2개의 연결이 가능해집니다.

 

그 다음으로 모든 HTTP 요청이 들어올 수 있도록 합니다.

3. 유형 : HTTP / 소스 : 사용자 지정 / 검색 : 0.0.0.0/0

 

그리고 SSH를 통해 개인 IP에서 접근할 수 있도록 합니다.

4. 유형 : SSH / 소스 : 내 IP

 

오른쪽 끝에 규칙 저장 버튼을 통해서 위 인바운드 규칙을 저장할 수 있습니다.

(다음으로, 인바운드 규칙 말고 아웃바운드 규칙에서는 <유형 : 모든 트래픽 / 대상 0.0.0.0/0>이 존재하는지 확인합니다.)

 

이번에는 남은 보안 그룹인default 들어가서 위와 같은 방식으로 인바운드 규칙 편집 버튼을 누릅니다.

여기서는 PostgreSQL에 대해 2가지 규칙을 생성하면 됩니다. => EC2의 규칙과 동일

1. 유형 : PostgreSQL / 소스 : 사용자 지정 / 검색 : RDS와 연결된 보안그룹(default) 

2. 유형 : PostgreSQL / 소스 : 내 IP

 

위 과정을 거쳤으면, EC2-RDS가 서로 연결이 되었습니다.

 

DataGrip

DB를 다루는 툴로서 해당 개발툴을 자주 이용하기에 해당 툴과 aws의 RDS를 연결하는 방법을 알아보겠습니다.

datagrip을 무료로 1년간 사용하기 위해서는 jetBrain에서 학생 인증을 받으면 됩니다.

 

datagrip에 진입하면, 오른쪽 위에는 해당 모양 +을 누르면 원하는 형태의 DB를 찾을 수 있습니다.

 

 

해당 DB를 이용하고 싶지만, 과거 프로젝트를 진행한 적 없으면 DB를 다운받아야하므로 Data Sources -> Drivers로 이동합니다. 여기서 원하는 DB를 고르고, 붉은 색이 보이면 다운되지 않았으므로 OK를 눌러서 해당 내용을 받아야합니다.

 

 

다시 Data Sources로 돌아오면여기서 RDS의 엔드 포인트Host에 붙여넣고, 데이터베이스 생성시 User는 default로 progres이고 Password는 위에서 입력한 값을 넣으면 됩니다.

 

 

그 후 Test Connection을 눌러서 연결을 시키면, 완성이 됩니다.

 

수고 많으셨습니다!!

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

[AWS] 서버 jar 파일을 ec2에 올리기 (FileZIia)  (0) 2023.07.11
[AWS] 알림 설정  (0) 2023.03.14

우선 해당 aws를 사용하기 전에 aws는 과금이 되기 쉬우므로 그에 따라서 알림을 받을 수 있도록 하는 것이 중요하다!

 

과금 알림 설정

먼저 오른쪽 위에 있는 자신의 계정이름(12hyeon)이 적혀있는 부분을 누르면, 아래의 화면이 보이게 됩니다.

해당 화면에서 계정 > Budgets 화면에서 "예산 생성" 버튼을 통해서 월별 비용 예산, 프리티어를 초과하면 알려주는 제로 지출 예산으로 해당 예산을 만들면 됩니다. 

 

템플릿을 선택 후 아래 보이는 이메일 수신자에 자신의 이메일을 작성해두고, 맨 아래의 "예산 생성" 버튼을 누르면 초과되는 경우에 해당 메일로 알림이 가게 만들 수 있습니다.

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

[AWS] 서버 jar 파일을 ec2에 올리기 (FileZIia)  (0) 2023.07.11
[AWS] RDS + EC2  (0) 2023.03.14

+ Recent posts