Redis 설치

최근 모니터링을 위해 스프링 액추에이터를 건드려보다가 EC2에 Redis가 설치되지 않아서 문제가 생겼었다.

이전에 메일 인증을 구현했던 EC2 인스턴스와 다른 인스턴스에서 테스트를 해서 Redis를 설치하지 않았다.

설치는 어렵지 않지만 다시 설치하려 하니 기존에 어떻게 설치했는지 기억이 안나서 글로 정리해두려고 한다.


EC2 Ubuntu 환경에서 Redis 설치 과정

본인의 EC2 OS는 Ubuntu이므로 우분투를 기준으로 정리한다.

1. 시스템 업데이트

apt를 업데이트 해준다.

sudo apt update

2. Redis 설치

sudo apt install redis-server

3. Redis 설치 확인

아래처럼 redis-cli 로 들어가서 ping 명령어로 레디스가 잘 설치 됐는지 확인한다.


Redis 종료하기

가끔 어떤 이유로든 Redis 서버를 종료해야할 수도 있을 것이다.

이때를 위해 종료 및 재시작 방법도 적어둔다.

1. Redis 서버 종료

sudo systemctl stop redis-server

2. Redis 서버 시작

sudo systemctl start redis-server

 

타임존

EC2 인스턴스의 기본 타임존 설정은 UTC로 되어있다.

따라서 비즈니스 로직에서 생성 시간이나 수정 시간 등을 기록하는게 중요하다면 타임존 설정을 해야한다.

리눅스를 공부했다면 간단할 수도 있겠지만 아직 리눅스가 미숙해서 그런지 매번 헷갈리니까 기록해둬야겠다.

이번 글에서는 EC2 인스턴스의 타임존을 Asia/Seoul로 변경하는 방법과 타임존 확인 방법을 정리해두려 한다.

본인의 EC2 OS인 Ubuntu 기준으로 정리한다.

타임존 설정

sudo timedatectl set-timezone Asia/Seoul

타임존 확인

timedatectl

 

위 명령어로 Asia/Seoul 로 타임존을 설정하고 확인해보았다.

보안그룹

보안 그룹은 AWS 에서 제공하는 방화벽 모음이다.
서비스를 제공하는 애플리케이션이라면 상관 없지도 모르지만,

RDS나 S3처럼 외부에서 함부로 접근하면 안되는 인스턴스는 허용된 IP 에서만 접근하도록 설정해야한다.

  • 인바운드 (Inbound): 외부 -> EC2 인스턴스 내부 허용
  • 아웃바운드 (Outbound): EC2 인스턴스 내부 -> 외부 허용

1. EC2 인스턴스의 보안 그룹 설정

1-1. 인스턴스에 적용된 보안 그룹 확인

인스턴스의 보안 탭으로 이동하면 현재 인스턴스에 적용된 보안 그룹을 확인할 수 있다.

인스턴스를 생성할 때 설정했던 SSH 트래픽 허용 설정도 보인다.

이제 이 보안 그룹의 인바운드/아웃바운드 설정을 편집할것이다.

1-2. 사이드 바에서 보안 그룹으로 이동 후 편집 창으로 이동

1-3. 원하는 인바운드 규칙으로 편집

인바운드 규칙은 위에서 설명했듯 외부에서 EC2 인스턴스로의 접근을 관리한다.

우선 로컬에서 SSH로 접근하는것과 8080 포트로 오는 요청만 허용한다.

필요 시 다른 포트도 추가하면 된다.

아웃바운드 규칙은 딱히 건들 필요 없으니 모든 IP에 대해 열어두는 기본 설정을 유지한다.

1-4. 인스턴스로 이동해서 인바운드 규칙 변경 확인

EC2 인스턴스 정보에서 보안 규칙이 잘 변경 됐는지 확인한다.


2. 보안 그룹 설정 변경 후 EC2의 스프링 부트 서버 접속

변경된 보안 규칙이 적용되는데 시간이 조금 걸릴 수 있으니 조금 기다렸다가 접속한다.

다시 요청을 하면 아래처럼 서버가 제대로 떠있고, 접속할 수 있음을 확인할 수 있다.

(본인은 스프링 부트 서버를 8082 포트로 열어서 인바운드 규칙을 8082로 바꿨다.)

 

SSH(Secure Shell Protocol)

SSH란 네트워크 프로토콜 중 하나이다.

컴퓨터와 컴퓨터가 인터넷과 같은 Public Network를 통해 서로 통신을 할 때  보안적으로 안전하게 통신을 하기 위해 사용한다.

대표적인 사용의 예는 다음과 같다.

  • 원격 제어
  • 데이터 전송

SSH를 통해 내 컴퓨터(로컬)에서 EC2 인스턴스로 접속해볼것이다.

그러면 로컬에서 EC2로 접속해서 인스턴스를 이리저리 건드려볼 수 있다.

이후 데이터 전송까지 진행해서 EC2 인스턴스에 스프링 부트 애플리케이션을 띄워볼것이다.


1. SSH로 EC2 인스턴스에 접속

1-1. 인스턴스로 이동해서 연결 버튼 클릭

1-2. 인스턴스 연결 방법 확인

AWS에서 EC2 인스턴스에 연결하는 방법을 너무 친절히 잘 알려줘서 적혀있는걸 따라만 해도 된다.

아래부터는 순전히 여기 적혀있는걸 따라하는 과정이다.

1-3. CLI(Git Bash)로 키 페어 위치로 이동

위 사진은 이전 EC2 인스턴스를 생성할 때 생성했던 키 페어 사진이다.

이제부터 EC2 인스턴스에 접근할 때 이때 만들었던 키 페어가 필요하다.

기본적으로 download 폴더에 있을 것이다.

본인은 이걸 바탕화면으로 옮겼기 때문에 desktop 경로로 이동했다.

1-4. 키 페어 권한 변경

chomd 커맨드로 키 페어의 권한을 변경해준다.

1-5. EC2 인스턴스 접속

이제 키 페어로 EC2 인스턴스로 이동하려면 아래와 같은 양식으로 입력하면 된다.

유저 이름은 OS마다 조금씩 다른데, 본인은 OS를 ubuntu로 했기 때문에 유저 이름은 ubuntu이다.

ssh -i {키 페어 파일 이름} {유저이름}@{EC2 인스턴스 주소}

 

혹은 아래 처럼 연결해둔 탄력적 IP나 public IP 주소로 접근도 가능하다.

(my-key.pem를 감싸는 " "는 생략 가능)


2. EC2 인스턴스 접속 확인

첫 접속때는 위와 같은 라인이 뜰 수도 있는데, yes를 입력하면 된다.

입력 커서가 가리키는 부분이 빨간 표시 영역처럼 바뀌면 접속에 성공한것.

 

참고로 EC2 인스턴스 접속을 끝내고 싶다면 ctrl + D 를 누르면 된다.

 

참고자료

 

AWS 1편: EC2 생성 후 Spring Boot 띄우기

Overview AWS EC2 인스턴스를 생성하고 Spring Boot 서버를 띄워보는 것까지 진행합니다. 주 목표는 서버를 외부에 제공하는 거라서 따로 배포 시스템을 구축하지 않고 단순히 빌드 파일을 복사해서 수

bcp0109.tistory.com

 

탄력적 IP 

AWS 인스턴스는 중지/종료되면 새로운 IP를 할당받아 실행된다.

만약 오류가 생겨서 인스턴스를 종료하고 다시 실행해야 한다면 그때마다 IP가 변경되기 때문에 관련 설정을 다시 해줘야한다.

특히 배포 상태일 때는 도메인 관련해서도 IP를 매번 바꿔줘야하므로 탄력적 IP를 설정하는게 편하다.

중지 후 재 실행 결과

 

그래서 AWS로부터 고정된 IP를 할당 받아서 사용하는 기능이 탄력적 IP 이다.

탄력적 IP는 할당받으면 그대로 과금이 된다.

인스턴스에 적용하지 않아도 요금제 계산은 들어가니 필요한 만큼만 할당받아야 한다.


1. 탄력적 IP 할당

1-1. 탄력적 IP 탭으로 이동 후 탄력적 IP 주소 할당

1-2. 탄력적 IP 주소 할당

딱힌 건들 필요 없이 기본 설정대로 할당 받으면 된다.

1-3. 탄력적 IP 주소 연결


2. 탄력적 IP 연결 확인


번외) 탄력적 IP 릴리즈

프리티어가 끝나면 EC2 인스턴스를 종료해도 탄력적 IP는 남기 때문에 반드시 릴리즈 해줘야한다.

탄력적 IP 주소 연결 해제 후 릴리즈 하면 된다.

 

참고자료

 

AWS 1편: EC2 생성 후 Spring Boot 띄우기

Overview AWS EC2 인스턴스를 생성하고 Spring Boot 서버를 띄워보는 것까지 진행합니다. 주 목표는 서버를 외부에 제공하는 거라서 따로 배포 시스템을 구축하지 않고 단순히 빌드 파일을 복사해서 수

bcp0109.tistory.com

 

서비스 배포

AWS EC2로 서비스 할 스프링 애플리케이션을 배포해보려고 한다.

이전 프로젝트에서도 배포는 내가 맡았지만 그땐 생각없이 따라했던게 컸던것 같다.

복습도 하면서 아직도 남아있는 배포에 대한 두려움도 지울겸 배포 과정을 정리해보려 한다.

EC2 인스턴스를 생성하고 Spring Boot 서버를 띄워보는 것까지 진행한다.

AWS 계정 만드는건 생략하고 진행한다.


1. EC2 인스턴스 생성

1-1. AWS Region 선택 후 EC2 탭으로 이동

아무래도 인스턴스 위치가 가까울 수록 속도도 나을테니 서울을 선택한다.

1-2. 리전 확인 후 인스턴스 시작

1-3. 인스턴스 이름 및 OS 설정

인스턴스 이름은 필요하다면 설정하고 OS는 편한걸 고르면 된다.

본인은 Ubuntu로 진행하려 한다.

1-4. 인스턴스 유형 설정

프리티어를 이용하기 때문에 사실 t2.micro 외엔 대안이 없긴 하다.

과금 의향이 있다면 규모에 맞는 인스턴스를 선택하면 된다.

1-5. 키 페어 생성

키 페어(로그인) 탭에서 새 키 페어 생성 버튼을 클릭하여 키 페어를 생성한다.

EC2 인스턴스와 SSH 접속을 할 때 이 키 페어가 필요하다.

한 번 다운 받으면 다시 받을 수 없으니 안전한 곳에 보관한다.

1-6. 네트워크 설정

내 IP에서 SSH 연결을 할 수 있도록 보안 그룹을 생성해서 등록한다.

추후 필요 시 보안그룹을 추가로 생성한다.

1-7. 스토리지 설정

인스턴스의 볼륨을 설정한다.

프리티어는 최대 30GB까지 지원하므로 30GB로 설정한다.


2. 생성된 EC2 인스턴스 확인

인스턴스 탭으로 이동하면 설정한대로 인스턴스가 만들어진걸 확인할 수 있다.

 

참고자료

 

AWS 1편: EC2 생성 후 Spring Boot 띄우기

Overview AWS EC2 인스턴스를 생성하고 Spring Boot 서버를 띄워보는 것까지 진행합니다. 주 목표는 서버를 외부에 제공하는 거라서 따로 배포 시스템을 구축하지 않고 단순히 빌드 파일을 복사해서 수

bcp0109.tistory.com

 

+ Recent posts