ip 주소에서 특유의 도메인을 사용하여 웹사이트를 배포하는 방법을 찾다가 알게된 지식을 차후에 다시 볼 수 있도록 기록한 내용

 

1.  도메인 주소 구매

https://www.gabia.com/

사진 속에서는 비용이 만만치 않아 보이지만 event domain을 구매하면 1년 기준 500~1000원 정도로 저렴하게 구매하는게 가능하다.

아래는 사진 예시

 

2.  AWS Route 53 이용

 

3.  도메인 관리 버튼에서 네임서버 설정

.은 빼야한다 (중요)

네임서버 정보변경은 루트서버 갱신 및 네임서버 캐시에 따라, 적용되는데 1~2일 정도 소요될 수 있다고 합니다.

 

도움 받은 글

https://seill.tistory.com/1112

 

요약

  1. 도메인 구매
  2. AWS Route 5S 서비스 사용
  3. 도메인 구매 사이트에서 네임 서버 등록 

 

Route 5S 서비스 이용 이유

다른 DNS 서비스를 사용해서 도메인 주소를 연결 할 수도 있지만 AWS에 있는 Route 5S 서비스를 이용하는 이유

  1. 통합성: Route 53은 기존 AWS 서비스와  통합된다.
  2. 높은 가용성: Route 53은 높은 가용성과 안정성을 제공하는 전 세계의 DNS 서버 네트워크를 활용하여 가용성과 안정성이 높다.
  3. 헬스 체크: Route 53은 헬스 체크 기능을 제공하여 특정 리소스의 상태를 모니터링 하고 문제 발생 시 트래픽을 다른 리소스로 자동으로 리디렉션 가능하다.
  4. 간단한 관리: AWS 서비스의 특징으로 Management Console을 통해 설정을 쉽게 관리할 수 있다.

도메인 구매 사이트에서 네임 서버 등록이 필요한 이유

네임 서버의 역활은 해당 도메인에 이름을 ip주소로 변환하는데 필요한 정보 제공해 주는 것이기 때문에

네임 서버의 등록이 되어 있지 않다면 도메인 주소를 통해 특정 ip 주소로 이동하는 것이 불가능하다. 

따라서 필수적으로 등록해 주어야 한다.

'Development > Git' 카테고리의 다른 글

Git Projects  (0) 2023.08.20
.gitignore 파일  (0) 2023.07.27
좋은 commit, Pull Request, branch 작성 방법  (0) 2023.07.24
Git branch 전략 (GitLab-Flow)  (0) 2023.07.24
Git branch 전략 (GitHub-Flow)  (1) 2023.07.23

1.  EC2 초기 생성시 key 파일 생성

 

2.  SSH 를 이용해 접근 시도

ssh -i {키 파일 이름}.pem ec2-user@{퍼블릭 IPv4 주소}

해당 메시지가 출력 되면서 접속이 실패하게 되는데 

자세한 원인은 해당 key 파일에 너무 많은 권한이 부여되어 있어 안전하지 않기 때문이다.

SSH는 private key의 보안을 매우 엄격하게 다룬다.

하지만 초기 ec2에서 key 파일을 생성시 

다음과 같이 chmod 644권한 수준을 초기에 가지고 있는데 이는

파일 소유자는 읽기 쓰기 권한, 그룹은 읽기 권한, 기타 사용자도 읽기 권한을 가지게 된다.

따라서 사실상 파일 소유자가 아니어도 기본적으로 모두 읽기가 가능하여 ssh가 보기에는 너무 많은 권한을 가지고 있는 것 으로 본다.

 

3.  해결법: chmod 400 ~파일명

chmod 400 {파일명}

위에 명령어를 통해 우리는 해당 파일을 읽는 권한만 사용하도록 부여하는 것이 가능하다.

참고로 chmod 뒤에 나오는 3자리 숫자는 2진법으로 계산했을 때 각 자리수는 앞 부터 소유자, 같은 그룹, 기타 사용자의 접근 권한을 

4: r (읽기), 2: w(쓰기), 1: x(실행) 의 합산을 표시하는 것 이다 

즉 chmod 400 {파일명}은 소유자에게만 읽기 권한을 제공한다는 의미이다.

 

접속 성공~

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

(AWS, Docker) Docker image이용 배포  (0) 2023.08.12
EC2 웹 서비스 배포시 인바운드 규칙  (0) 2023.08.12

상황

Restfull으로 개발된 SpringBoot 애플리케이션을 AWS EC2에 배포하였다.

어 그런데 일정 시간이 지나면 자동으로 연결이 끝어지면서 서버가 종료하게 된다.

학교 선배님에게 듣기로는 서버는 절대 죽어서는 안되고 계속 돌아가야 한다고 하여 방법을 찾게 되었다.

 

nohup, disown 명령어

// 공통 명령어
bashCopy code
nohup command-to-be-run &

// 포그라운드 프로세스 Spring jar파일 기준 방법
nohup java -jar ~.jar &
// 백그라운드 프로세스 기준 
disown

해당 nohup: ignoring input ~ 메시지가 뜨면 성공

nohup은 "no hangup"을 의미하며, 프로세스를 시작할 때 사용된다. 이는 터미널 세션 종료 시에 신호를 무시하도록 프로세스에 지시하는 것을 의미한다. & 기호는 명령어는 해당 프로세스를 백그라운드에서 실행하도록 한다.

disown 은 bash 셸의 내장 명령으로, 이미 실행 중인 백그라운드 프로세스에 대해 사용되며 현재 셸의 작업 목록에서 작업을 제거한다. disown이 실행되면, 해당 프로세스는 셸에서 분리되어 사용자가 로그아웃하더라도 계속 실행되게 된다.

따라서 위 명령어는 ~.jar를 실행하고, 이 프로세스를 백그라운드에서 계속 실행하도록 하며, 터미널이나 쉘이 닫혀도 종료되지 않도록 한다.

요약: 프로그램을 터미널 세션 종료 시에 신호를 무시하도록 설정 후 백그라운드로 실행시켜 사용자가 로그아웃을 하거나 네트워크 연결이 끊어져도 중단되지 않게 해준다.

 

특이사항

  • nohup 명령어로 실행되는 프로세스는 자동으로 재시작 되지 않는다.
    • 서버가 중지되거나 재부팅 된다면 수동으로 다시 실행시켜 주어야 한다.
  • nohup java -jar ~.jar > output.log 2>&1 & 명령어를 통해
    • nohup.out 파일에 출력을 저장하지 않고 다른 파일에 저장하는 것이 가능하다.

 

'Development > Spring' 카테고리의 다른 글

스프링 프로젝트 명명규칙  (0) 2023.08.05
multipart.MaxUploadSizeExceededException 해결  (0) 2023.07.30
Tomcat, Jetty, Undertow  (0) 2023.07.16
Spring vs SpringBoot  (0) 2023.07.16
DTO, POLO 데이터 객체  (0) 2023.07.01

선행 요소: AWS 회원가입

1. AWS EC2 시작

주의!: 과금 요소가 생길 수 있으니 최대한 프리티어로 생성해야 한다.

키 페어 생성시 RestAPI.pem 파일이 다운로드 되는데 이는 해당 EC2를 실행하는데 꼭 필요한 보안 파일 이기 때문에 삭제하지 말고 중요한 곳에 모셔두어야 한다.

그 외 설정은 추가적으로 건드는 것 없이 인스턴스 시작

2. 탄력적 IP 할당

지금 실행 시킨 EC2는 새로 연결시 url이 바뀌기 때문에 이를 방지하기 위해서는 탄력적 IP를 할당하여 사용할 필요가 있다.

3. RDS 생성

가장 중요!!!: 반드시 RDS는 프리 티어로 만들어야 한다. 프로덕션, 개발/테스트 용도로 만들 경우 세팅도 프리티어와 다를 뿐 아니라 아무런 이용이 없다 해도 한 달 고정 비용이 많이 발생하기 때문

해당 비밀번호를 반드시 기억해야 한다.

이후 따로 설정을 건들지 않고 데이터 베이스 생성 버튼을 클릭한다.

4. EC2, 데이터베이스 연결

+ Recent posts