AWS 프리티어 EC2 및 RDB 인스턴스 생성

cm·2024년 1월 1일

AWS

목록 보기
1/1

AWS EC2 및 RDB 인스턴스 생성

1. AWS EC2

1-1. Amazon Machine Image(AMI)

  • AWS에서 가상 머신(인스턴스)을 생성하기 위한 이미지이다. 운영 체제, 관련 애플리케이션, 설정 등을 포함하는 가상 머신의 템플릿이라고 생각하면 된다.
  • 주요 개념
    • 운영 체제: AMI는 특정 운영체제 기반으로 Amazon Linux, Ubuntu, Windows Server 등 다양한 운영 체제를 선택 가능하다.
    • 애플리케이션 및 설정: 원하는 애플리케이션과 설정을 포함할 수 있다.(개발 환경이나 소프트웨어 스택이 포함된 이미지 생성가능)
    • 사용자 데이터: 사용자 정의부가적인 데이터를 포함 가능.(EC2 인스턴스가 시작될 때 실행되는 스크립트나 설정 정보 등)
  • CentOS : RedHat 계열의 리눅스 배포판이다.
  • 리눅스 회사 선택 : PC용 리눅스로는 우분투, 서버용 리눅스로는 레드햇 추천한다.(제일 튼튼함)
  • 레드햇 + SQL Server는 레드햇은 무료이므로 SQL server 비용만 나온다. 반면 window + SQL server 은 window, SQL server를 둘다 내야한다고 한다. 헤드햇을 이용하는 것이 훨씬 저렴하다.

1-2. 키페어

  • Amazon Web Services(AWS)에서 인스턴스에 접근하고 제어하기 위한 인증 수단이다.

  • 주로 EC2 인스턴스와 관련이 있다. 공개키와 개인키의 쌍으로 구성된다.

  • 인증서 다운로드 방식

    • RSA : (공인인증서 방식). 공개키, 개인키 모두 생성하여 공개키는 암호화에 사용하고 개인키는 복호화에 사용된다.
    • ED25519: (윈도우에서는 지원되지 않는다.). 공개키, 개인키 모두 생성하여 공개키는 서명검증에 사용하고 개인키는 서명 생성에 사용한다.
  • 프라이빗 키 파일 형식

    • .pem: 맥, 우분투, 리눅스와 호환된다.
    • .ppk: 윈도우 계열에서 사용된다.

1-3. 네트워크 설정- 방화벽

  • 보안그룹을 생성하여 네트워크 트래픽을 관리한다.
  • 위치무관으로 설정하면 모든 IP주소에서의 접근을 허용한다.
  • 내 IP로 지정으로 설정하면 현재 사용중인 IP에서만 접근이 가능하도록 제한한다.
  • anywhert Ipv4 으로 설정하면 모든 IPv4 주소에서의 접근을 허용한다.

ec2 접속시 타임아웃 에러로 자꾸 접속이 안되어 아래 참고 블로그에 적혀있는 방법대로 보안그룹규칙을 수정하였으나 연결이 계속 안된다. 보안그룹규칙을 수정했더니 되는 사람이 있는가 하는 반면, 어떤 사람들은 여전히 접속되지 않아 카페갔더니 바로 됐다는 이야기도 있고, sk 브로드밴드 공유기는 22번 포트가 막혀있다는 블로그 글도 있다. 접속시 여러가지의 영향을 받는 것 같아 휴대폰 핫스팟을 켜고 보안그룹 규칙을 수정하고 연결했더니 바로 접속됐다. 일단, 실습시에는 이렇게 이렇게 진행한 뒤 추후 재시도해볼 예정이다.


2. AWS RDS

2-1. 컴퓨팅 리소스 및 퍼블릭 액세스

  • RDS가 EC2와 연결되면 퍼블릭 액세스가 제한된다. 퍼블릭 액세스가 제한되는 경우 외부에서 직접적으로 RDS에 접근하는 것을 방지하므로 실습에서 사용할 Workbench를 사용할 수 없다. Workbench는 로컬에서 작업을 편리하게 해주므로 사용할 것이다. 따라서, EC2 컴퓨팅 리소스에 연결을 안함으로 설정해야 한다.
  • Workbench에서 RDS에 접속하기 위해서는 보안규칙에서 포트권한을 부여해야 한다. 포트권한을 부여할 때는 모든 ip허용, 내IP만 허용 등 선택할 수 있고 보안과 프로젝트 상황에 맞게 잘 고려해서 선택하면 된다.
  • 특정 포트권한을 허용한 이후에는 Workbench에서 부여한 포트로 연결을 요청한다. 연결이 수락되면 Workbench와 RDS가 연결된다.

3. 실습

3-1. EC2 인스턴스 생성하기

  • 인스턴스 시작

  • 이름 및 태그 입력/ AMI 지정

  • 키 페어 생성

  • 네트워크 설정 : ssh, https, http 모두 사용할 것이므로 체크한다.

  • 스토리지 구성

  • 실행 : ec2에 들어가면 인스턴스가 자동으로 실행되어 있음을 확인할 수 있다.



  • 접속
    • 위의 '키페어 항목'에서 생성된 키페어 파일을 특정 작업 디렉토리로 옮긴다.
    • 특정 작업 터미널에서 아래의 코드 명령어를 실행한다.
      • 해당 인스턴스 클릭 후 '연결' 버튼 클릭
      • ssh 클라이언트
      • 예시코드 복사 (참고 : 아래의 코드는 한국 리전이기에 다른 리전 인경우 아래의 코드와 상이할 수 있다.)
        • chmod : 처음 생성된 키페어파일은 권한이 넓으므로 chmod를 이용해 권한을 좁힌다.
        • ssh : 생성된 ec2 연결
    chmod 600 키페어파일이름.pem
    ssh -i "키페어파일이름.pem" ec2-user@ec2-퍼블릭IP주소.ap-northeast-2.compute.amazonaws.com

  • 확인 : ssh 접속 후 터미널에서 ec2의 기본유저가 슈퍼유저 루트의 권한이 있는지 확인한다. 터미널에서 whoami 결과가 ec2-user로 뜨면 성공!
    sudo yum install telnet -y
    whoami

탄력적 IP 만들기
고정 IP 설정(탄력적 IP) : https://soobarkbar.tistory.com/224

참고 블로그
보안그룹규칙 수정 : https://realsalmon.tistory.com/3
인스턴스 삭제하는 방법 : https://extsdd.tistory.com/259
접속시 timout error 참고 : https://baekseokjeong.tistory.com/127


3-2 RDS 인스턴스 생성하기

  • 데이터베이스 생성

  • 데이터베이스 생성방식 선택 / 엔진옵션

  • 에디션 / 템플릿
    • 에디션 : 8버전 중 최신
    • 템플릿
      - 프리티어 : 프리티어
      - 프로덕션 : 실제 제품에 사용하는 DB
      - 개발/테스트 : 개발 때 사용하는 DB

  • 설정
    • 마스터 암호 : My SQL8 이후로는 대소문자 포함 권장

  • 인스턴스 구성 및 스토리지
    • 인스턴스 구성 : 1CPU, 2CPU 등등
    • 스토리지 : 20GB 이상 사용하는 경우 스토리지 자동 조정이 가능하다.(실습에서는 20GB까지는 필요하지 않으므로 비활성화)

  • 연결
    • 컴퓨팅 리소스 : EC2 컴퓨팅 리소스에 연결안함은 RDS와 EC2가 연결이 안된다는 뜻이 아니다. 만약 EC2 컴퓨터 리소스에 연결을 선택하면 내부망으로 EC2와 RDS가 연결되어 바깥에서 사용이 불가하다. 즉, 퍼블릭 액세스가 금지되어 workbench 사용이 불가하다. 실습에서는 workbench를 이용할것이므로 EC2 컴퓨터 리소스에 연결안함으로 선택한다.
    • 퍼블릭 액세스 : 예

  • 데이터베이스 인증/ 모니터링

  • RDS 인스턴스 생성완료 및 실행

    • 보안규칙 수정 : Workbench에 접속을 위한 3306 포트 권한을 허용하기 위해 보안규칙을 수정한다.
      - vpc 보안그룹 - 인바운드 규칙편집 - 3306 포트 권한 허용 추가
      - 보안상, 소스를 anywhere Ipv4로 지정하는 것은 위험하다. 내IP로 지정하는 것이 제일 좋으나 사용할 때마다 매번 바꿔줘야하는 번거로움이 있으므로 실습에서는 일단 이렇게 지정한다.



  • 연결 확인
    만약, telnet이 안깔려 있다면 Mac의 경우 brew를 이용하여 재설치
    telnet 엔드포인트 3306
    brew install telnet

  • 워크벤치 연결

  • 명령어 실행
    • 명령어가 잘 실행되어 mydb가 생성된 것을 확인할 수 있다.
profile
나를 위한 기록

0개의 댓글