혜잉이의 소소한 공간

[AWS#5] RDS 구성 본문

Cloud/AWS

[AWS#5] RDS 구성

kimhyeing 2025. 1. 18. 16:25

 

① VPC 생성
② 인터넷 게이트웨이 생성 및 VPC 연결
③ 퍼블릿 서브넷 1 생성
④ 퍼블릿 서브넷 2 생성
⑤ 퍼블릭 라우팅 테이블 1 생성(퍼블릭 서브넷 1 연결 및 인터넷 게이트웨이 기본 경로 등록)
⑥ 퍼블릭 라우팅 테이블 2 생성(퍼블릭 서브넷 2 연결 및 인터넷 게이트웨이 기본 경로 등록)
⑦ NAT 게이트웨이 생성
⑧ 프라이빗 서브넷 1 생성
⑨ 프라이빗 서브넷 2 생성
⑩ 프라이빗 라우팅 테이블 1 생성(프라이빗 서브넷 1 연결 및 NAT 게이트웨이 기본 경로 등록)
⑪ 프라이빗 라우팅 테이블 2 생성(프라이빗 서브넷 2 연결 및 NAT 게이트웨이 기본 경로 등록)
⑫ 프라이빗 보안 그룹 생성
⑬ 프라이빗 서브넷 1(가용 영역 1)에 EC2 인스턴스 생성
⑭ 프라이빗 서브넷 2(가용 영역 2)에 EC2 인스턴스 생성
⑮ 애플리케이션 로드 밸랜서 생성

 

 

 

 

  • 이름 정의

MyVPC02

MyIGW

MyPublicSubnet1

MyPublicSubnet2

MyPublicRouting1

MyPublicRouting2

 

MyNatGW

MyPrivateSubnet1

MyPrivateSubnet2

MyPrivateRouting1
MyPrivateRouting2

 

MyPrivateSecugroup

PermitHTTP(80), HTTPS(443), SSH(22) and ICMP

Myweb1

Myweb2

 

MyALBtargetgroup

MyALB

 

1. VPC 생성 및 IGW 연결

 

 

2. 퍼블릭 서브넷 및 라우팅 테이블 생성

 

 

 

 

3. NAT GW 생성 및 프라이빗 생성 및 연결

 

# NAT 게이트웨이 생성

 

 

# 프라이빗 서브넷 생성

 

 

# 프라이빗 라우팅 생성 및 서브넷 연결

 

 

 

4. 보안그룹 생성 및 EC2 생성

 

# EC2 보안그룹 생성

 

 

 

 

 

5. 로드밸런싱 생성

 

# 대상그룹 생성

 

* 상태 검사란 ? 


로드밸런서가 EC2인스턴스에게 주기적으로 http 요청 메시지를 보냄

응답이 오면 EC2 인스턴스를 로드밸런서 대상으로 냅둠. 
응답이 없다면 EC2 인스턴스가 동작하지 않는다라고 판단하고 대상그룹에서 삭제 

(동작 여부 판단)

 

 

- 아래 보류중인 것으로 포함을 클릭할 것.

- 생성하게 되면 EC2 인스턴스 2개에게 부하분산해서 트래픽을 전달.

 

 

 

# 로드밸런서 생성

* 로드밸런서는 퍼블릭 영역에 생성하는 것.

 

 

 

 

 

6. RDS 생성

AWS 에서 설치된 DB 사용 (SaaS)

 

  • 이름 정의

MyDBSecurgroup

주석 - Permit MySQL(3306)

 

mydbsubnetgroup

mydb

 

# 보안그룹 생성

EC2를 통해서 접속, 웹서버로부터 데이터를 받고 저장하기 위해서는 해당 포트가 오픈되어 있어야함.

 

 

# RDS 서브넷 그룹 생성

 

 

 

# DB 생성

- 위에서 개발/테스트를 선택했기 때문에 기본값은 복제본 생성하지 않음.

 

`

EC2인스턴스를 통해서만 접근해야함.

외부에서는 접근할 수 없는 구조.

컴퓨팅 리소스를 연결하게 되면 해당 EC2 인스턴스를 통해서만 접근 할 수 있음.

 

 

 

 

작업 -> EC2연결 -> myweb1, myweb2 연결

 

 

# EC2를 통해서 DB 접근하기 위한 준비 단계

[root@MyWeb1 ~]# yum -y install mariadb105 php php-mysqlnd

 

[root@MyWeb1 ~]# rpm -qa mariadb105 php8.3 php8.3-mysqlnd

 

 

# DB 로그인

[root@MyWeb1 ~]# mysql -h mydb.cluster-cj22ysq84grc.ap-northeast-2.rds.amazonaws.com -u dbadmin -p

 

MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| testdb             |
+--------------------+

 

 

 

# DB 테이블 생성

MySQL [testdb]> create table users (id int, name varchar(255), password varchar(255));
Query OK, 0 rows affected (0.039 sec)

 

 

 

# DB테이블 정보 추가

MySQL [testdb]> insert into users values(1, 'lee', 'test1');
nsert intQuery OK, 1 row affected (0.004 sec)

MySQL [testdb]> users values(2, 'kim', 'test2');
insert into users values(3, 'park', 'test3');insert into users values(2, 'kim', 'test2');
Query OK, 1 row affected (0.004 sec)


MySQL [testdb]> insert into users values(3, 'park', 'test3');
Query OK, 1 row affected (0.003 sec)

 

 


# EC2인스턴스 PHP 파일 생성

 

[root@MyWeb1 ~]# vi /var/www/html/dbconnect.php

<?php
$servername = "RDS 엔드포인트 이름";
$username = "dbadmin";
$password = "toor1234.";

$conn = new mysqli($servername, $username, $password);

if ($conn->connect_error) {
  die("Mysql5.7 connection failed: " . $conn->connect_error);
}
echo "Mysql5.7 connection was successful.";
?>

 

[root@MyWeb1 ~]# systemctl restart httpd

 

* ALB를 통해서 접근. 처음에는 not found 발생할 수 있음을 참고할 것.

 


 

[root@MyWeb1 ~]#  vi /var/www/html/select.php

(붙여넣을 땐 a하고서 쉬프트 + 인설트키)

<?php
$servername = "RDS 엔드포인트 DNS 이름";
$username = "dbadmin";
$password = "toor1234.";
$dbname = "testdb";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
  die("Mysql5.7 connection failed: " . $conn->connect_error);
}

$sql = "select id, name, password from users";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
  while($row = $result->fetch_assoc()) {
    echo "id: " . $row["id"]. " - Name: " . $row["name"]. " " . $row["password"]. "<br>";
  }
} else {
  echo "0 results";
}
$conn->close();
?>

 

[root@MyWeb1 ~]# systemctl restart httpd

 

 

 

 

 

 

 

 

 

 

 

'Cloud > AWS' 카테고리의 다른 글

[AWS#7] Auto Scaling & RDS 이중  (0) 2025.01.19
[AWS#6] Lambda  (1) 2025.01.18
[AWS#4] VPC 구성  (0) 2025.01.15
[AWS#3] S3 서비스  (0) 2025.01.15
[AWS#2] 계정 생성 및 MFA 인증  (0) 2025.01.15