클라우드에서 관계형 데이터베이스를 더욱 간편하게 설정, 운영 및 확장할 수 있는 서비스이다.
VPC, 인스턴스, rds용 웹페이지를 각각 띄운다.
퍼블릭 인스턴스(test_pub)
db용 인스턴스(test_db)
탄력적 IP 할당
nat 게이트웨이 설정
서브넷은 퍼블릭으로 할당한다.
라우팅 테이블의 새로 만든 항목이 아닌 디폴트로 생성된 test 이름이 들어간 것에 nat게이트웨이 추가, 서브넷 연결은 하지 않아도 된다.
## root 권한 & mariadb 설치
sudo -i
yum install -y mariadb
## 생성했었던 사용하는 pem키의 내용 복붙 후 저장
vi key
## 권한 부여
chmod 400 key
## 프라이빗 인스턴스 접속
ssh ec2-user@프라이빗 인스턴스의 프라이빗IPv4 주소 -i key
## 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에 들어갈 수 있는 것을 확인 할 수 있다.
데이터베이스 생성방식은 표준생성, 엔진은 mariadb, 템플릿은 프리티어로 한다.하고 생성해주면 된다.
네트워크 트래픽을 하나 이상의 서버나 장비로 분산하기 위한 기술이다. 소프트웨어 or 하드웨어의 방식으로 적용되는데 이를 로드 밸런서(Load Balancer)라 한다.
Scale up -> 서버의 대한 스펙을 올리는것(CPU 교체 등)
💡 Scale out
- 저렴한 노드 여러개를 하나의 Cluster로 구성하는 방식
- 클러스터 내 하나의 노드에 문제가 발생하여도 웹페이지가 중단되지 않으므로 가용성일 높은 웹 서비스 구성가능
- 네트워크 트래픽을 서비스의 port 단위로 제어하고 트래픽을 분산처리함으로써 높은 가용성과 부하분산을 통한 고효율 웹 서비스 제공
💡 인터넷 연결 여부에 따른 구분
- External Elastic Load Balancer
- Internal Elastic Load Balancer
ELB와 연결된 인스턴스의 연결상태를 수시로 체크하여 인스턴스의 OS나 애플리케이션의 문제로 인해 연결 장애나 세비스 가능 여부에 대한 health check를 지속적으로 수행함
ELB는 기본적으로 라운드 로빈방식으로 트래픽을 분산하고 한번 연결된 세션을 다음 연결 시 그대로 연결하지 않는다.
세션유지가 필요한 경우 Sticky Session 옵션을 사용하여 세션을 유지할 수 있다.(ELB 통과 시 별도의 세션 정보 추가)
이 기능은 개별 인스턴스에서 SSL 처리를 수행하는 대신 ELB에서 SSL을 처리하여 수행한다. 즉 개별 인스턴스에서 SSL 인증서 설치가 필요하지 않다는 것이다.
📢 참고사항: ELB 종류별 특징
이름은 지정하지 않는다.
#!/bin/bash
yum install -y httpd
systemctl enable httpd --now
hostname > /var/www/html/index.html
로드밸런싱 -> 대상그룹
로드밸런싱 -> 로드밸런서
만들어진 도메인 이름으로 웹페이지를 검색해보면 만들었던 인스턴스 3개로 모두 로드 밸런스 되는 것을 확인 할 수 있다.
또한 인스턴스를 중지시키면 그 인스턴스를 제외한 나머진 것들로만 로드밸런스 된다. 타켓그룹에서 확인해보면 중지한 인스턴스만 unused로 되고 나머지는 healthy한 것을 볼 수 있다.
터미널로 접속하여 인스턴스안에서 systemctl stop httpd를 하면 health 체크가 실패하여 접속이 안되는 것을 확인 할 수 있다.
sticky session 유지하도록 설정하려면 타켓그룹 -> 속성 -> 편집 -> stickiness를 활성화, 시간을 설정하면 그 정해진 시간동안은 세션이 유지된다.
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 선택하고 생성
로드밸런서로 가서 class load balancer를 선택한다.
이후는 변경없이 그대로 생성해주면 된다.
💡 로드밸런서 선택사항
다른 로드밸런서로 실습을 진행할 때에는 AUto Scaling을 생성할때 고급옵션에서 알맞는 로드 밸런싱 사항을 선택해서 진행해주면 된다.
로드밸런서 -> 대상 그룹 -> auto scaling 그룹 -> vpc