본문 바로가기

IT 엔지니어/CLOUD

AWS - VPC / RDS

AWS VPC INFRA 기본 구성 단계

VPC → IGW → Subnet → Routing Table → 보안 그룹

USER DATA EC2 인스턴스 생성

< AWS EC2 인스턴스를 생성하면서 사용자 데이터(User Data) 스크립트를 넣어, 자동으로 Server 세팅하고 웹 페이지 출력 >

[ EC2 인스턴스 ]

  • EC2(Elastic Compute Cloud) : AWS에서 제공하는 가상 Server
  • 인스턴스 생성시 특정 스크립트를 입력하면 Server가 만들어지면서 동시에 프로그램 설치, 설정 변경, 파일 작성 같은 작업을 자동으로 수행할 수 있음 ( = User Data)

[ USER DATA ]

  • EC2 인스턴스가 최초 부팅할 때 실행되는 초기 설정 스크립트
  • 보통 Bash 스크립트 형식으로 작성
  • 장점
    • Server 초기 세팅을 자동화 → 일일이 SSH로 접속해서 설치/설정 안 해도 됨
    • 동일한 세팅을 여러 Server에 쉽게 배포 가능

< 실습 >

AWS EC2 인스턴스를 생성하고, 웹 서버를 설치하여 웹 페이지를 정상적으로 구동

✔ VPC, Subnet, IGW, RTB 구성

✔ EC2 인스턴스 생성

✔ User Data로 초기 Server 설정 및 Apache 설치

✔ Public IP 연결 후 접속 TEST

인스턴스 생성시 사용자 데이터 입력

( User Data )

root passwd(aws1234!), 키 파일 없이 SSH 비밀번호 로그인 허용, root 로그인 허용, 웹 서버(httpd) 설치, 홈페이지 출력 문구(Welcome to AWS Web Server), 웹 서버 시작

#!/bin/bash

echo "aws1234!" | passwd --stdin root

sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config

sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config

systemctl restart sshd

dnf -y install httpd

echo "<H1>Welcome to AWS Web Server 01</H1>" > /var/www/html/index.html

systemctl restart httpd

> 결과

AWS EC2 인스턴스에 SSH로 접속한 뒤, Apache 웹 서버를 통해 웹 페이지가 정상 출력

EC2 인스턴스에 SSH로 root 접속 성공

EC2 서버에 설치한 웹 서버 정상 구동, 브라우저에 웹 페이지 출력


SUBNET

PUBLIC vs PRIVATE

Public Subnet
Private Subnet
외부 인터넷 접속
O
X
외부에서 접근 가능
내부 통신만 가능
IGW 연결
O
X
RTB 설정
0.0.0.0/0 → IGW
0.0.0.0/0 → NAT 게이트웨이 또는 없음
사용 목적
접속용
보안용
웹 서버, Bastion 서버
DB 서버, 백엔드 서버

[ PUBLIC SUBNET ]

퍼블릭 IP 자동 할당 + 0.0.0.0/0이 IGW로 나가야 Public

퍼블릭 IP 자동 할당 활성화
RTB : 0.0.0.0/0 → IGW 연결

[ PRIVATE SUBNET ]

퍼블릭 IP 없음 + 0.0.0.0/0이 NAT 또는 없음이면 Private

퍼블릭 IP 자동 할당 비활성화
RTB : 0.0.0.0/0 → NAT 게이트웨이 또는 연결 없음

AWS LOAD BALANCER

[ LOAD BALANCER ]

여러 Server에 트래픽을 골고루 분산해주는 기능 (Server 과부하 방지)

[ AWS LOAD BALANCER ]

ELB : Elastic Load Balancer

< ELB 종류 >

  • ALB : 웹사이트 서버용
  • NLB : 초고속 통신 서버용
  • GWLB : 보안장비 연결
ALB (Application Load Balancer)
웹사이트, 앱 서버용 (HTTP/HTTPS 기반)
ex) 웹사이트, 쇼핑몰 서버, 로그인페이지 등
NLB (Network Load Balancer)
초고속, TCP/UDP 트래픽용 (속도 ↑, 지연 시간 ↓)
ex) 게임 서버, 채팅 서버, 대용량 통신 서버 등
GWLB (Gateway Load Balancer)
보안/방화벽 장비 트래픽 분산용
ex) 방화벽 트래픽 분산, 외부 공격 감지 시스템 설치 등

  • EC2 > 로드밸런싱 > 로드밸런서

LOADBALANCER 생성

EC2 > 로드밸런서

ALB 생성 (웹 서비스 구축 시 ALB는 필수)

Subnet은 2개 이상, 가용 영역 다르게 설정 후

로드 밸런서 생성시 선택

DNS 이름으로 접속


RDS INSTANCE

Relational Database Service

[ RDS 인스턴스 ]

AWS에서 제공하는 완전 관리형 Database Server

  • 직접 DB Server를 설치하거나
  • 패치, 백업, 스케일링을 관리하지 않아도 AWS가 알아서 해주는 형태의 DB Server 머신
인스턴스
EC2처럼 서버를 "한 대" 띄우는 것 (단, DB 전용)
엔진 종류
MySQL, PostgreSQL, Oracle, SQL Server, MariaDB, Aurora 중 선택 가능
관리
패치, 업그레이드, 백업, 장애조치, 복제 등을 AWS가 자동으로 처리
설정
CPU, 메모리 스펙 / 디스크 크기 / 고가용성 옵션 등
  • RDS > 서브넷 그룹

RDS > 데이터베이스 > 데이터베이스 생성 (=RDS 인스턴스 생성)

 

 

 

  1. 보안 그룹 생성
    1. 보안 그룹 이름
    2. MYSQL(3306)
    3. VPC - 01
    4. Inbound Mysql/Aurora
    5. Outbound all
  2. DB 서브넷 그룹 생성
    1. VPC 선택
    2. 서브넷 추가
      1. 가용영역 / 서브넷 - 프라이빗 선택

pse1234!

mydb

  1. RDS 생성
    1. DB 생성
    2. 엔진 유형 - MYSQL
    3. 템플릿 - 테스트
    4. 설정 - 식별자 / 마스터 이름
    5. 자격증명 관리 - 자체 관리 - 마스터 암호
    6. 클러스터 스토리지 구성 - aurora standard
    7. 인스턴스 구성 - 버스터블 클래스
    8. 가용성 및 내구성 - 복제본 생성하지 않음
    9. 연결 - EC 2 리소스 연결 안함
    10. VPC 선택
    11. 네트워크 유형
    12. DB 서브넷 가용영역 추가 설정
    13. 퍼블릭 액세스 - 아니요
    14. 추가 구성
      1. 초기 DB 이름 설정
      2. 암호화 활성화 체크 해제
      3. 유지 관리 기간 기본 설정 없음
  2. 읽기 (인스턴스) 추가

mysql -h domain -u admin -p mydb

 

 

 

 

 

myrds-db.cluster-ro-chqgacsq0t73.ap-northeast-2.rds.amazonaws.com
myrds-db.cluster-chqgacsq0t73.ap-northeast-2.rds.amazonaws.com

'IT 엔지니어 > CLOUD' 카테고리의 다른 글

AWS - Public INSTANCE  (2) 2025.06.07
AWS - IAM / S3 / VPC  (3) 2025.06.06
K8S - strorage  (0) 2025.06.04
K8S -MONGO DB  (0) 2025.06.03
K8S - ConfigMap -1  (3) 2025.06.02