ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AWS2 RDS (2)접속, 보안그룹
    생활코딩 AWS 2022. 4. 11. 15:37

    ===

    RDS를 통해 DB서버를 생성 했으니 사용하기

    DB Client를 이용해서 DB서버에 접속해봅시다

     

    두가지 방법이 있다

    (1)쉽고 덜안전 : Public Access부분을 키는 것

    저기 아니요 라고 돼 있는 부분

     

    (2)어렵고 안전 : 

     

    ===

    퍼블릭 액세스를 켜는 법 + RDS의 설정을 바꾸는 방법

    수정 클릭

    예로 바꾸고 넘어감

    이렇게 뜨는데,

    DB 인스턴스 수정 버튼을 누를 때

     

    예약된 다음 유지 관리 기간에 적용을 하면

    내가 바꿨던 것을 모았다가 RDS가 한꺼번에 지정함

     

    즉시 적용을 하고 버튼 누르면 바로 설정 바꿈

    즉시 적용하면 잠깐 멈출 수 있다. 이걸로 인해 서비스에 영향을 줄 수 있으니 조심하란 말

    이 수정중이 사용가능으로 바뀌면 그때 우리가 사용할 수 있게 된다

     

    접속을 하기 위해 인스턴스 정보로 가면

    엔드포인트가 이 DB서버의 주소, 호스트네임이다.

     

    mysql 모니터를 이용할 것이다.

     

    mysql -h : host라는 뜻

    붙여놓고 뒤에 -u : 생성할 때 입력했던 내 사용자아이디

    -p 하고 엔터치면 password 누르라고 나옴

    이렇게 접속이 된다

     

    접속이 안되면?

    아마존에서 우리에게 서비스 차원에서 제공하는 방화벽 기능이 Security group이라는 것이다

    우리의 DB가 이 Security group 안에 속하게 되는데, 그 Security group 에 보안설정을 하게되면 저 그룹안에 속해있는 머신들(여기서는 우리의 DB서버)은 동일한 보안적인 설정을 갖게됨

     

    우리가 설정해야될건 크게 두가지

    (1)클라이언트가 아무나 접속하게하면 위험하므로 특정 IP를 가진 클라이언트만 접속하게하기, 또는 누구나 접속하겠다 하는 = 접속하는 SOURCE를 제약하는 것

    (2)클라이언트도 서버에 접속하게되면 서버에는 여러 서버가 설치돼 있을 수 있다. 클라이언트가 그 중에 어떤 서버에 접속할것인지 지정하는게 = PORT

    클라이언트가 DB서버에 있는 모든 서버에 접속하는게 아니라 개방해준 포트에 해당되는 서버만 접속할 수 있게

     

    ===

    이거 클릭하면 EC2제품의 페이지로 가게됨(제 추정에는 RDS도 결국 EC2위에서 돌아가기 때문에 EC2가 쓰는거랑 똑같은걸 쓰는 것 같아요)

    인바운드가 아웃바운드가 있습니다

    인바운드는 DB서버 입장에서 안으로 들어오는 것 : 클라이언트를 허용하려면 이것

    아웃바운드는 응답하는것

     

    인바운드 세팅하면 아웃바운드 세팅 안해도 자동으로 된다

    편집 클릭

    유형에 MySQL 선택

    프로토콜 TCP

    포트범위 3306

    소스는

    위치무관으로 하면 누구나 접속할 수 있게 됨

    내 IP는 내 컴퓨터의 현재 IP가 적용됨, 집밖이나 내 집의 IP가 바뀌면 접속 못함(그때 세팅 바꿔주기, 이게 더 안전하니까)

    인바운드 항목이 생겼다. 여러곳에서 접속을 해야한다면 또 편집버튼 눌러서 규칙을 추가하면 된다

     

    그리고나서 접속을 실행해보기

    이젠 성공!

     

    ============

    저번시간처럼 IP를 제한하는 것만으로 충분히 안전해지지만, 그것보다 훨씬 더 안전하게 하는 방법은

    이런 구도를 만드는것

    - 같은 VPC안에서 RDS는 외부에서 접속할 수 없도록 하고

    - VPC안에 소속돼 있는 EC2인스턴스를 만들어서 이 EC2인스턴스 만이 RDS에 접속할 수 있게 하면

    RDS에 직접접속하는 것을 막을 수 있다

    더 많은 보안적인 고려가 필요한 상황이라면 이런 방식을 추천. AWS에서도 이걸 추천하고 있음

     

    ===

    위에걸 테스트해보기 위해 첫번째로 필요한건

    기존에 설정해놨던 public access와 같은 것들을 끄는 것

    수정

    이거하고 즉시적용

    또 보안그룹의 인바운드

    지우고 저장. 아무도 접속 못하게 만들어놓고 출발

     

    ===

    EC2인스턴스 생성

    우분투

    t2.nano

    vpc를 rds와 같은것으로 지정

    퍼블릭 IP 자동 할당 활성화(외부에서도 접속할 수 있도록)

    스토리지추가기본값

    태그추가도기본값

    보안 그룹 구성에 22번 포트가 열려있는데 SSH라고 해서 command line을 통해서 유닉스 리눅스 macOS와 같은 운영체제를 원격제어할 수 있는 방법을 사용하려면 22번 포트가 열려있어야 한다

    그리고 어느 사용자나 접속할 수 있게 소스를 저렇게. 왜냐면 EC2만큼은 접속할 수 있어야 이 EC2인스턴스를 통해서 DB에 접속할 수 있다.

    시작

    키페어(=비밀번호) 선택

    저거 체크박스 선택하고 시작

    좀 시간이 걸림

    running이 되면 퍼블릭 IP/DNS 로 접속하면 된다

     

    ===

    SSH를 통해서 원격제어를 하려고 하는 것

    EC2에 ubuntu인스턴스를 만들었기 때문에 ubuntu라고 하는 id값의 유저가 기본적으로 생성돼있다. 약속임

    ssh ubuntu@그서버의주소

    -i : 접속할 때 제출하는 비밀번호. 그 비밀번호가 위치하고 있는 디렉토리를 써주면 된다. cloudront수업만들때 썼던거라 이름이 저럼

    여기서 mysql 모니터를 하려고 하면 없지 안 깔려있으니까

    sudo apt update; : installer인 apt라는 프로그램의 상태를 최신상태로 업데이트

    sudo apt install mysql-client : mysql 모니터가 설치

    RDS페이지가서 엔드포인트의 주소를 카피

    -h엔드포인트주소

    -u

    -p

    왜 아무것도 안나와. 접속을 못하고 있다

    그 이유는

    RDS와 EC2모두 같은 VPC지만 EC2가 RDS에 접속하려고 하면 역시나 Security Group을 통해서 허용애 돼야 한다

     

    ===

    보안그룹 클릭

    인바운드 편집

     

    EC2 인스턴스로 가서

    IP주소를 RDS의 Security Group에 등록하면 된다. 이것도 있지만 더 좋은 방법은 EC2인스턴스가 소속돼있는 걔의 Security Group이 있을 거 아냐

     

    ===

    launch-wizard-10클릭

    저거 클릭

    보기편하게 이렇게 적어놓기

    그룹 ID 라고 돼 있는 저걸 카피

     

    다시 RDS로 가서 RDS의 보안그룹 클릭

    이건 이렇게

    여기에 인바운드 - 편집에서 

    RDS가 있는 시큐리티 그룹에 우리가 만든 EC2인스턴스가 속해있는 시큐리티그룹에 속해 있는 머신들은 누구나 접속할 수 있게 하기 = EC2 시큐리티 그룹의 ID를 RDS 시큐리티 그룹에 등록해야해(8:45아 말하기도 힘드네요)

    사용자 지정에 복사했던걸 넣고 조금 지우면 밑에 추천을 해줌

    설명엔 for ec2라고 써놓고 저장

     

    RDS가 속해있는 Security Group에는 EC2가 속해있는 Security Group의 머신들은 누구나 접속할 수 있게 허용한 것

     

    ===

    아까 했던 명령어 다시

    성공

     

    이러면 좀 더 안전하게 RDS에 접속할 수 있다. 더 안전하게 운영한다.

    EC2만 접속할 수 있게 되므로 훨씬 더 안전해

    여러분은 항상 EC2를 경유해서 RDS를 접속해야 되는 불편함이 있지만 안전함이 최우선이므로

     

    ===

     

    '생활코딩 AWS' 카테고리의 다른 글

    AWS CloudWatch - CPUUtilization graph  (0) 2022.04.25
    AWS2 RDS (3)모니터링, 백업과 복원, 마치며  (0) 2022.04.12
    AWS2 RDS (1)생성, AZ, VPC  (0) 2022.04.10
    AWS Auto Scaling  (0) 2022.04.08
    AWS Launch Template  (0) 2022.04.08
Designed by Tistory.