not-a-gardener 개발기 9) EC2 배포, Route 53 세팅

메밀·2023년 8월 8일
0

not-a-gardener

목록 보기
9/13
post-thumbnail

1. 기본 세팅

1) Amazon Machine Image(AMI)

AMI란 EC2 인스턴스를 시작하는 데 필요한 정보를 이미지로 만들어 둔 것.
-> Amazon Linux

2) 인스턴스 유형

인스턴스의 사양을 선택하는 페이지.
프리티어 사용 가능한 t2.micro 선택

3) 키페어

EC2 사용이 처음이라면 '새로 만들기', 기존 키페어를 사용하고 싶다면 아래에 뜨는 키를 선택해도 좋다.

이때 다운받은 pem 키는 인스턴스에 접속하기 위해 꼭 필요한 열쇠이므로 잘 보관!

4) 네트워크 설정

개인 서버이므로 별다른 설정 없이 넘어가도 된다!

5) 인스턴스 페이지에서 인스턴스 상태가 실행중으로 바뀌는지 확인

6) 탄력적 IP 할당하기

네트워크 및 보안 > 탄력적 IP > 우측 상단 ‘탄력적 IP 주소 할당’

이 설정을 하지 않으면 인스턴스를 재시작할 때마다 새로운 IP가 할당된다.
고정 IP를 가질 수 있도록 탄력적 IP 주소를 할당해주어야 한다.



2. 기본 세팅

인스턴스 > 인스턴스 > (우측 상단) 연결 > (우측 하단) 연결

1) apt 세팅

sudo apt update
sudo apt upgrade

2) jdk 설치

sudo apt install openjdk-11-jdk

# 확인
java -version

3) 타임존 변경

sudo timedatectl set-timezone 'Asia/Seoul'

# 확인
sudo date

여기까지가 기본 세팅!

3. 주소 연결

구입한 도메인과 인스턴스를 연결하기 위해 Amazon Route53으로 간다.
이하 내용은 도메인 구입까지는 완료했다는 가정 하에 진행한다.

1) 호스팅 영역

호스팅 영역 > 호스팅 영역 생성

도메인 이름구입한 도메인을 기입(나의 경우엔 not-a-gardener.xyz)하고,
다른 설정은 가만히 두면 된다

2) 레코드 생성

호스팅 영역 > (도메인 선택) > 레코드 생성

‘값’란에 EC2 퍼블릭 IP 기입

3) 네임서버 등록

값/트래픽 라우팅 대상에 있는 네 가지 네임서버를 (가비아든 아마존이든) 구입한 도메인에 등록

위 이미지의 빨간색 부분에 해당하는 값들이다.




이제 DNS 전파를 초조하게 기다린다... 꽤 걸린다.

도메인의 DNS(Domain Name System, 도메인 이름 시스템)는 웹 URL(예: www.wix.com)을 인터넷을 통해 데이터를 교환하는 데 사용되는 IP 주소(컴퓨터가 읽을 수 있는 숫자의 조합)로 변환합니다. DNS는 이름과 숫자를 일치시켜 웹 사이트를 브라우저에 전달합니다.

도메인 전파는 DNS 레코드가 변경된 후 전 세계의 네임 서버를 업데이트하는 과정입니다. 전파를 완료하는 데는 최대 48 시간이 소요될 수 있습니다. 이 과정 중에는 모든 기기에서 사이트에 액세스할 수 없거나, 사이트가 안전하지 않은 것으로 나타날 수 있습니다. 전파가 완료되는 즉시 사이트는 전 세계에서 액세스가 가능하며 보안이 유지됩니다.
출처

DNS 전파를 확인해보기 좋은 사이트가 궁금하다면 여기로!
DNS니 네임서버니 하는 개념들이 궁금하다면 여기로!



4. MariaDB/redis

전파를 기다릴 동안 DB들을 세팅한다.

1) 포트 개방

EC2 대시보드 > 실행중인 인스턴스 > 해당 인스턴스 ID 선택 > 인스턴스 요약 창 아래쪽 보안탭 > 설정되어 있는 보안그룹 > 인바운드 규칙 편집

다음과 같이 MariaDB와 redis의 기본포트 번호를 추가해주었다.

2) MariaDB

설치

sudo apt install -y mariadb-server

# 확인
sudo mysql

root password 설정 및 원격 접속 허용


# 계정 패스워드 설정
use mysql
update user set password=password('패스워드') where user = 'root';

# localhost 접속 허용
grant all privileges on *.* to 'root'@'localhost' identified by '패스워드';
flush privileges; // 현재 사용중인 MySQL의 캐시를 지우고 새로운 설정을 적용

# 원격 접속 허용
grant all privileges on *.* to 'root'@'%' identified by '패스워드';
flush privileges;

외부 접속을 위한 설정파일 수정

설정 파일 수정

sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf 
  • "i"로 INSERT 모드 진입
  • bind-address = 0.0.0.0 (모든 ip에서 접속 가능)
  • esc
  • :wq!

db 재시작

sudo service mysql restart

3) redis

설치

sudo apt-get install redis-server
sudo apt-get install redis-cli

# 확인
redis-server --version
redis-cli --version

비밀번호 설정

sudo vi /etc/redis/redis.conf

redis 설정 파일을 열고 requirepass 항목을 찾아 적당한 비밀번호를 입력한다.

이후 redis를 재시작한다.

sudo systemctl restart redis-server.service

이제 인증 없이는 redis를 사용할 수 없다.

0개의 댓글