[AWS ] EC2와 RDS 생성하고 연동해보기 / EC2에서 RDS 접근하기

hyelim·2023년 9월 21일
1
post-thumbnail

EC2 설정

인스턴스 생성

  1. AMI(Amazon Machine Image) 생성

  2. 인스턴스 유형 설정 t2.micro

    T 시리즈의 경우 정해진 사양 보다 높은 트래픽이 오면 크레딧을 조금 더 적극적으로 사용하면서 트래픽을 처리하지만, 크레딧이 모두 사용되면 더이상 인스턴스를 사용할 수 없어서 트래픽이 높은 서비스는 T 시리즈 보다 다른 시리즈가 권장된다.

  3. 키 페어 생성 → pem 은 EC2 에 접근하는 마스터 키 이므로 절대 유출하면 안된다.

  4. 네트워크 설정

    vpc 설정, 방화벽 설정

  5. 스토리지 설정

  6. 인스턴스 시작과 동시에 생석ㅇ됨

인스턴스 보안 그룹(방화벽) 설정

인스턴스 ID 클릭 > 보안 > 보안 그룹 클릭 > 인바운드 규칙 편집 으로 들어가 아래 네 가지를 추가한다.

  • SSH - AWS EC2에 터미널로 접속했을 때
    • 지정된 IP에서만 ssh 접속이 가능하도록 하는 것이 안전!
    • 본인 집의 IP를 기본적으로 추가하고, 카페와 같이 다른 장소에서 접속할 때 해당 장소의 IP를 추가하는 것이 안전하다.
  • 0.0.0.0/0 으로 설정한 이유는 집이 아닌 외부에서도 EC2에 접근할 수 있도록 한 것이다.
  • 8080 포트를 추가하였고,
  • HTTP와 HTTPS도 추가해주었다.

탄력적 IP(EIP) 할당

인스턴스 생성 시 새 IP가 할당된다. (IP 주소 입력하면 서버 접속 가능)

그러나, 같은 인스턴스를 중지하고 다시 시작할 때도 새 IP가 할당된다.

이는 매우 번거롭기 때문에, IP가 매번 변경되지 않도록 고정 IP를 가지도록 해줘야 한다.

여기까지 진행했으면 EC2 인스턴스 생성과정은 끝났다.

하지만 주의해야할 것이 있는데, 탄력적 IP를 생성하고 EC2 서버에 연결하지 않으면 비용이 발생한다.

생성한 탄력적 IP는 꼭 인스턴스에 연결하고, 인스턴스 삭제 시 탄력적 IP도 꼭 함께 삭제해주도록 하자.

서버 생성 시 꼭 해야할 설정들

  • Java 설치(각자 프로젝트에 맞게)

    sudo apt-get update
    sudo apt-get install openjdk-17-jdk
    java -version
  • 타임존 변경
    기본 서버의 시간은 미국 시간대이다.

    sudo rm /etc/localtime
    sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
  • 호스트네임 변경 (현재 접속한 서버의 별명을 등록)
    실무에서는 수십 대의 서버가 작동하는 데, IP만으로는 어떤 역할을 하는지 구분할 수 없다.
    구분하기 쉽도록 호스트 네임을 등록하자.

    • sudo vim /etc/hosts

    • sudo vim /etc/hostname

    • sudo reboot

RDS(Relational Database Service) 설정

RDS 는 AWS에서 지원하는 클라우드 기반 관계형 데이터베이스이다.

하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같이 잦은 운영작업을 자동화하여 개발자가 개발에 집중할 수 있게 지원하는 서비스이다.

추가로 조정 가능한 용량을 지원하여 예상치 못한 양의 데이터가 쌓여도 비용만 추가로 내면 정상적으로 서비스가 가능하다는 장점도 있다.

이러한 RDS 를 이용해 데이터베이스 환경을 구축해보자

RDS 인스턴스 생성

  • 데이터 생성 방식 선택 - 표준 생성
  • 엔진 옵션 - MySQL
  • 템플릿 - 프리티어
  • DB 인스턴스 식별자 설정
  • 자격증명 설정 - 마스터 사용자 이름, 암호 설정
  • 인스턴스 구성 - default 사용
    Amazon RDS 인스턴스 유형 | 클라우드 관계형 데이터베이스 | Amazon Web Services
  • 스토리지 프리티어 최대 스토리지는 20GiB이다
  • 연결
    1. VPC 설정

    2. 서브넷 그룹 설정

    3. 퍼블릭 엑세스 설정

    4. VPC 보안 그룹 설정

      보안 그룹의 경우 기존 보안 그룹 혹은 새로 생성한 보안 그룹과 함께 추가로 2개의 보안 그룹이 추가로 생성됩니다.

      • rds-ec2-1(RDS에서 EC2 인스턴스의 접속을 위해 허가하는 보안 그룹)
      • ec2-rds-1(EC2에서 RDS로의 아웃바운드 설정을 위한 보안 그룹)
    5. 데이터베이스 인증 옵션 설정

보안그룹에 대해 더 알아보고 싶으면?
RDS를 생성할 시, 컴퓨팅 인스턴스로 연결을 자동으로 설정해 보기 | DevelopersIO

RDS 생성시 해야하는 필수 설정

파라미터 그룹 설정

  • 타임존
  • Character Set
  • Max Connection

파라미터 그룹은 DB 옵션을 설정하기 위해 AWS 에서 제공하는 기능

파라미터 그룹을 생성하면 그룹 DB 버전에 맞는 프로퍼티 값들을 제공한다.

사용자는 이 값을 수정하여 DB 의 옵션을 변경할 수 있다.

내 PC 에서 RDS 에 접속해보기

로컬 PC에서 RDS로 접근하기 위해 RDS의 보안 그룹에 PC의 IP를 추가해야한다.

EC2에서 사용된 보안 그룹의 그룹 ID를 인바운드 규칙에 추가하면 된다.

profile
기록용

0개의 댓글