[쿠버네티스 1/27] AWS - RDS & ELB & Auto Scaling

신현식·2023년 1월 27일
0

구름_AWS

목록 보기
3/3
post-thumbnail

Amazon RDS(Relational Database Services)

클라우드에서 관계형 데이터베이스를 더욱 간편하게 설정, 운영 및 확장할 수 있는 서비스이다.

RDS 실습

VPC, 인스턴스, rds용 웹페이지를 각각 띄운다.

VPC 생성

  • 서브넷 pub, pri 각각 한개씩 생성
  • 인터넷 게이트웨이 생성
  • 라우팅 테이블 한개 생성(라우팅 편집 & 서브넷 연결에 추가)

인스턴스 생성

퍼블릭 인스턴스(test_pub)

db용 인스턴스(test_db)

VPC에서 탄력적 IP, nat 할당

  • 탄력적 IP 할당

  • nat 게이트웨이 설정
    서브넷은 퍼블릭으로 할당한다.

  • 라우팅 테이블의 새로 만든 항목이 아닌 디폴트로 생성된 test 이름이 들어간 것에 nat게이트웨이 추가, 서브넷 연결은 하지 않아도 된다.

ec2 접속 & db 설치

## root 권한 & mariadb 설치
sudo -i
yum install -y mariadb

## 생성했었던 사용하는 pem키의 내용 복붙 후 저장
vi key

## 권한 부여
chmod 400 key
## 프라이빗 인스턴스 접속
ssh ec2-user@프라이빗 인스턴스의 프라이빗IPv4 주소 -i key
  • 프라이빗 인스턴스인 test_db(10.0.100.170)에 접속이 된다.
## mariadb-server 설치
sudo -i
[root@ip-10-0-100-170 ~]# yum install mariadb-server
systemctl start mariadb
mysql -u root -p

mysql에 접속하고 user를 추가해준다.

MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [mysql]> create user 'root'@'%';

이후 퍼블릭 인스턴스까지 나간 뒤 접속하면 mysql에 들어갈 수 있는 것을 확인 할 수 있다.

RDS 생성

데이터베이스 생성방식은 표준생성, 엔진은 mariadb, 템플릿은 프리티어로 한다.하고 생성해주면 된다.

  • mysql -u admin -p -h 엔드포인트(test-db2.cgcqrrfznf8c.ap-northeast-2.rds.amazonaws.com)
    를 하면 RDS로 접속할 수 있다.

Amazon DNS : Amazon Route 53

  • 가용성과 확장성이 우수한 클라우드 기반의 DNS 서비스이다.
  • 사용자의 요청에 따라 Amazon EC2 인스턴스, Elastic load balancing, S3 bucket 등 AWS에서 실행되는 다양한 인프라에 효과적으로 연결할 수 있다.
  • 사용자를 AWS 외부의 인프라로 전달하는 서비스도 Route 53을 사용할 수 있다.

로드 밸런싱(Load Balancing)

네트워크 트래픽을 하나 이상의 서버나 장비로 분산하기 위한 기술이다. 소프트웨어 or 하드웨어의 방식으로 적용되는데 이를 로드 밸런서(Load Balancer)라 한다.

Scale up -> 서버의 대한 스펙을 올리는것(CPU 교체 등)

💡 Scale out

  • 저렴한 노드 여러개를 하나의 Cluster로 구성하는 방식
  • 클러스터 내 하나의 노드에 문제가 발생하여도 웹페이지가 중단되지 않으므로 가용성일 높은 웹 서비스 구성가능
  • 네트워크 트래픽을 서비스의 port 단위로 제어하고 트래픽을 분산처리함으로써 높은 가용성과 부하분산을 통한 고효율 웹 서비스 제공

로드 밸런싱 방식

Amazon ELB(Elastic Load Balancing)

ELB 종류

💡 인터넷 연결 여부에 따른 구분

  • External Elastic Load Balancer
  • Internal Elastic Load Balancer

ELB 주요 특징

상태확인 서비스(Health Check)

ELB와 연결된 인스턴스의 연결상태를 수시로 체크하여 인스턴스의 OS나 애플리케이션의 문제로 인해 연결 장애나 세비스 가능 여부에 대한 health check를 지속적으로 수행함

Sticky Session

ELB는 기본적으로 라운드 로빈방식으로 트래픽을 분산하고 한번 연결된 세션을 다음 연결 시 그대로 연결하지 않는다.
세션유지가 필요한 경우 Sticky Session 옵션을 사용하여 세션을 유지할 수 있다.(ELB 통과 시 별도의 세션 정보 추가)

SSL Termination 및 보안 기능

이 기능은 개별 인스턴스에서 SSL 처리를 수행하는 대신 ELB에서 SSL을 처리하여 수행한다. 즉 개별 인스턴스에서 SSL 인증서 설치가 필요하지 않다는 것이다.

  • 인증서는 ELB에 배치: ACM(Amazon Certificate Manager)에서 무료로 발급가능한 사설 인증서 사용가능

📢 참고사항: ELB 종류별 특징

ELB 실습

인스턴스 만들기

이름은 지정하지 않는다.

  • 고급 -> 사용자 데이터
#!/bin/bash

yum install -y httpd
systemctl enable httpd --now
hostname > /var/www/html/index.html
  • 인스턴스 개수 3개로 지정

    사용자 데이터에 지정해주면 퍼블릭 IP로 접속을 했을때 웹페이지에서 해당 인스턴스에 대한 정보를 볼 수 있다.

EC2 로드 밸런스

로드밸런싱 -> 대상그룹

  • 대상그룹 생성하기(인스턴스, http, 만든 vpc)
  • 만든 인스턴스 모두 추가하고 만들기

로드밸런싱 -> 로드밸런서

  • 애플리케이션 로드 밸런서 생성, pri의 경우 라우팅 테이블에서 등록을 하지 않았기에 오류가 나는데 이는 vpc의 라우팅 테이블에 가서 만들었던 테이블의 서브넷 연결에서 편집을 하여 pri도 추가해주면 된다.

만들어진 도메인 이름으로 웹페이지를 검색해보면 만들었던 인스턴스 3개로 모두 로드 밸런스 되는 것을 확인 할 수 있다.

또한 인스턴스를 중지시키면 그 인스턴스를 제외한 나머진 것들로만 로드밸런스 된다. 타켓그룹에서 확인해보면 중지한 인스턴스만 unused로 되고 나머지는 healthy한 것을 볼 수 있다.

터미널로 접속하여 인스턴스안에서 systemctl stop httpd를 하면 health 체크가 실패하여 접속이 안되는 것을 확인 할 수 있다.

sticky session 유지하도록 설정하려면 타켓그룹 -> 속성 -> 편집 -> stickiness를 활성화, 시간을 설정하면 그 정해진 시간동안은 세션이 유지된다.

인프라 확장

가용성(Availability)

확장성(Scalability)

Amazon Auto Scaling

시작구성으로 인스턴스 생성

AMI : ami-013218fccb68a90d4 넣어서 선택
인스턴스 유형: t2 micro 선택

  • 고급 설정에서 사용자 데이터 추가
#!/bin/bash

yum install -y httpd
systemctl enable httpd --now
hostname > /var/www/html/index.html
  • 보안그룹에서 기존에 만들었던 http-sg 선택 후 시작구성을 생성한다.

  • Auto Scaling에 가서 생성, 시작구성으로 변경한 이후 만들었던 것 선택, 밑과 같은 설정을 한 이후 생성한다.

  • 인스턴스로 가면 3개가 새로 생성된 것을 확인할 수 있다. 만약 인스턴스를 종료한다면 자동을 하나가 새로 생성되어 인스턴스의 개수를 3개로 맞추려고 하는 것을 볼 수 있다.

  • auto scaling-> 그룹 세부정보편집 -> 원하는 용량을 수정하면 그 수에 맞게 인스턴스가 생성된다.

시작 템플릿으로 인스턴스 생성

시작템플릿에 가서 생성 ->AMI : amazon linux 선택, 인스턴스 유형: t2 micro 선택하고 생성

  • 수정에 들어가서 네트워크 구성에 추가 -> 퍼블릭 IP 자동 할당 활성화 체크를 한 이후 고급 설정에서 사용자 데이터 추가, 템플릿 버전 생성 진행

로드 밸런스

로드밸런서로 가서 class load balancer를 선택한다.

이후는 변경없이 그대로 생성해주면 된다.

💡 로드밸런서 선택사항

다른 로드밸런서로 실습을 진행할 때에는 AUto Scaling을 생성할때 고급옵션에서 알맞는 로드 밸런싱 사항을 선택해서 진행해주면 된다.

Auto Scaling

  • Auto Scaling에 가서 생성, 시작템블릿으로 변경한 이후 만들었던 것 선택, 버전을 제일 최신에 만들었던 것을 선택 ,위에서 한것과 같지만 고급 옵션에서 밑과 같은 설정을 해준다.

삭제하는 순서

로드밸런서 -> 대상 그룹 -> auto scaling 그룹 -> vpc

profile
전공 소개

0개의 댓글