4 분 소요

image

Region

  • AWS의 모든 서비스가 존재하는 물리적인 위치이다.

  • 리전안에는 여러개의 가용 영역 (availability Zone, AZ)이 존재한다.

  • 재해 발생시에도 서비스를 공급할 수 있도록 하기 위함.

  • 리전이 한 곳에 있다면, 리전으로부터 먼 곳에서 서비스를 이용하면 속도의 문제가 있다.

  • 거리가 멀수록 속도는 상대적으로 느리고, 노드를 많이 거칠 수록 속도는 떨어진다.


image

Availability Zone (AZ)

  • 가용 영역은 실제 데이터가 존재하는 데이터 센터이다.

  • 천재지변 등에 의해 손상될 경우 다른 가용 영역에서 서비스 하기 위해 여러 곳에 가용 영역이 존재한다.

  • 무중단 서비스를 가동하기 위함이다.

  • 고가용성(High Availability)를 제공하기 위해 여러 가용 영역을 사용한다.


VPC

  • Amazon Virtual Private Cloud(Amazon VPC)를 사용하면 정의한 논리적으로 격리된 가상 네트워크에서 AWS 리소스를 시작할 수 있다.

  • 이를 통해 사용자는 자체 독립된 가상 네트워크 환경을 구성하고, 가상 머신, 컨테이너, 서비스 등의 리소스를 네트워크 상에서 연결하고 통신할 수 있다.

# VPC의 Subnet

1. Public subnet = 외부랑 통신가능 // bastion, loadbalancer, 웹서버 등 // 즉 외부와 통신이 가능하다 = IGW 연결

2. Private subnet = 외부랑 통신이 불가능 // WAS, DB // 외부와 통신을 하지 않는다 = IGW 연결X

VPC, EC2 인스턴스 생성 실습

image

image

image

image

VPC 생성후 IGW와 연결을 해야 외부와 통신할 수 있다. 
연결 후 Attached 상태로 전환됨을 확인. 

image

image

image

image

image

image

image

퍼블릭으로 사용할 서브넷을 생성 한다.
해당 서브넷과 연결할 라우팅 테이블 생성 후 0.0.0.0/0 값을 추가로 라우팅하여 연결한다.
서브넷 설정 편집에서 `퍼블릭 IPv4 주소 자동 할당 활성화` 란을 활성해야 인스턴스 생성 시 default 값으로 활성화가 되어있다.

image

image

EC2 인스턴스 생성시 네트워크 설정에서 만든 VPC와 서브넷을 선택하고 SSH외 추가적으로 실습을 위해 ICMP, PING 보안 그룹 규칙을 추가하여 인스턴스를 생성하였다.

image

sudo -i
apt-get -y install nginx
curl [PublicIP] //verify
Private subnet1 대역으로 test2라는 이름의 인스턴스를 생성 후 키값이 담긴 pem파일의 내용을 복사.
vim kedu-keypair.pem 에 복붙
ssh -i kedu-keypair.pem ubuntu@10.10.2.248[VPC private IP]
644 too open 오류 메세지가 뜬다.
chmod 600 kedu-keypair.pem 변경하면 성공적으로 접속됨을 확인할 수 있다.

RDS

  • AWS RDS (Relational Database Service)는 Amazon Web Services의 관리형 관계형 데이터베이스 서비스이다.

  • RDS를 사용하면 MySQL, PostgreSQL, Oracle, SQL Server, Amazon Aurora 등의 관계형 데이터베이스 엔진을 쉽게 설정, 운영 및 확장할 수 있다.

  1. 관리형 서비스
    • RDS는 관리형 서비스로서 데이터베이스 인스턴스의 프로비저닝, 설정, 백업, 모니터링 등과 같은 일부 작업을 AWS가 자동으로 관리합니다. 이를 통해 데이터베이스 운영에 필요한 관리 작업을 간소화하고, 시간과 비용을 절감할 수 있습니다.
  2. 다양한 데이터베이스 엔진
    • RDS는 MySQL, PostgreSQL, Oracle, SQL Server, Amazon Aurora 등 다양한 데이터베이스 엔진을 지원합니다. 각 엔진은 고성능, 확장성, 안정성을 제공하여 다양한 응용 프로그램에 적합한 선택을 할 수 있습니다.
  3. 확장성과 가용성
    • RDS는 자동화된 스케일링 기능을 제공하여 데이터베이스 성능을 쉽게 확장할 수 있습니다. 필요에 따라 CPU, 메모리, 스토리지를 조정하여 데이터베이스 인스턴스를 확장할 수 있습니다. 또한, RDS는 여러 가용 영역에 걸쳐 데이터베이스 인스턴스를 자동으로 복제하여 가용성을 보장합니다.
  4. 보안 기능
    • RDS는 데이터베이스 보안을 강화하기 위한 다양한 기능을 제공합니다. 데이터베이스 암호화, VPC(Virtual Private Cloud) 연결, 네트워크 액세스 제어, IAM(Identity and Access Management) 기반의 권한 관리 등을 통해 데이터의 기밀성과 무결성을 보호합니다.
  5. 자동 백업 및 복원
    • RDS는 자동 백업을 지원하여 데이터베이스의 일관성과 내구성을 보장합니다. 또한, 복원 기능을 통해 데이터베이스를 특정 시점으로 복원하거나, 다른 리전으로 백업을 복제할 수 있습니다.
  6. 모니터링 및 경고
    • RDS는 Amazon CloudWatch와 통합되어 데이터베이스 인스턴스의 성능, 가용성 및 알림을 모니터링할 수 있습니다. 이를 통해 성능 이슈나 잠재적인 문제를 사전에 감지하고 조치할 수 있습니다.

RDS 실습

image

image

image

RDS, 관계형DB용으로 사용할 서브넷을 2개 생성한다.

image

image

image

두 서브넷을 RDS 서브넷 그룹으로 묶고 사용한다.
단일 가용영역을 갖는 RDS는 생성할 수 없다. 그래서 그룹으로 생성하여 관리하게 된다.

image

image

10.4.28 버전의 mariadb선택. Tomcat같은 백엔드 프로그램과 연동시 db의 버전이 너무 높으면 연동이 안될 수 있다.

image

템플릿은 실습용이기 때문에 그냥 프리티어로 설정

image

# DB 연동을 위해 필요한 4가지 정보

1. DB가 설치된 서버의 호스트(IP) 주소 + 포트
2. DB이름
3. DB사용자 이름 
4. DB사용자 암호

image

`스토리지 자동 조정 활성화` = 용량이 부족할때 늘릴 수 있다.

image

퍼블릭 액세스를 활성화 하면 VPC 외부에서도 접속이 가능하다.

image

현재 default 보안 그룹에는 3306 포트가 열려있지 않음으로 따로 보안 그룹의 정책을 설정해야한다.

image

추가 구성에서 포트를 확인해보는 것이 좋다. 수정 가능.

image

Db이름은 db연동에 중요한 요소이기때문에 중요하다.

image

백업 활성화 = 스냅샷을 생성할 수 있는데, 요금 부분과 관련이 있어서 해제한다.
암호화 활성화 = 저장되는 데이터베이스를 암호화할것인지에 대한 설정.

image

유지 관리 = 버전 자동 업그레이드 기능

image

RDS를 생성하면 엔드포인트(DB의 주소)가 하나 생성이되는데 해당 주소는 영문주소로 되어있다. 
따라서, DNS 호스트이름이 활성화가 되어있어야 한다.
VPC 설정-> DNS 호스트 이름 활성화 설정.

image

생성 후 엔드포인트를 확인할 수 있다.

image

RDS 생성시 보안그룹을 따로 설정하지 않았는데, 지금처럼 RDS를 생성하고 보안그룹을 다시 설정하거나 보안 그룹을 먼저 정의하고 생성해도 상관없다.

image

SSH, ICMP, HTTP, 3306 (DB) , 8080 (톰캣을 설치할 예정이므로 같이 정의)

image

DB에 접근할 용도의 (Bastion)이라는 이름의 인스턴스를 생성.
미리 정의한 보안 그룹을 선택하여 생성한다.
이떄 VPC-subnet의 `퍼블릭 IP 자동 할당`은 활성화를 선택해야한다.
# `bation` 인스턴스 접속

sudo -i
apt update
mysql // command not found 메세지와 함께 설치할 수 있는 버전의 db를 알려준다.
apt install mariadb-client-core-10.3
mysql -u admin -p[비밀번호] -h [인스턴스 엔드포인트] -P 3306 // 포트는 default 3306으로 생략 가능하나, 수정했을땐 적어야함.
show databases;
use mysql;
select user,host from user
; // verify
exit
apt -y install openjdk-8-jdk

image

wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.90/bin/apache-tomcat-8.5.90.zip
apt install unzip
unzip apache-tomcat-8.5.90.zip
rm -rf apache-tomcat-8.5.90.zip
mv apache-tomcat-8.5.90 tomcat

image

image

image

cd tomcat
ls
Tomcat 폴더에 webpps는 웹루트디렉토리이다. (apache에 /var/www/html/index.html 같이 사용자가 내 웹 액세스했을때 보이는 첫 화면과 같은 경로라고 생각하면 된다.)
chmod -R 777 ../tomcat
ls bin
./bin/startup.sh // 동작 파일
curl localhost:8080 // verify
인스턴스의 퍼블릭IP:8080로 접속됨을 확인할 수 있다.

댓글남기기