EBS Snapshot
- 볼륨 -> 스냅샷 - >세가지 방법
1. 볼륨 생성
2. 이미지 -> ec2 생성
3. 복사(백업)
IAM(Identity and Access Management)
- GCP, Azure에도 존재
- Identity <- username, pw
- Access <- 서비스 접근 제어
* default 보안그룹은 VPC가 삭제돼야 삭제할 수 있다.
RDS(Relational Database Service)
- 완전 관리형 서비스 -> 고가용성(HA), 자동 백업,자동 조정(Scale Up, SSD 용량 증가 등)
rds를 검색해서 들어온다
[데이터베이스 생성] 클릭
* 데이터베이스의 복사본을 S3에 보관했다가 [S3에서 복원]을 통해 복구할 수도 있다.
Mysql Community 선택(Aurora는 유료 서비스임)
템플릿 - 프리 티어 선택(과금방지)
마스터 사용자 != 루트 사용자
일반사용자 < 마스터 사용자 < 루트 사용자
개발(Dev) -> 테스트(QA;품질보증;품보) -> 스테이징(staging) -> 프로덕션(Ops)
모니터링 - [Enhanced 모니터링 활성화]
- 모니터링 시간을 5분 -> 1분 이내로 단축할 수 있다(비용 발생)
웹서버 인스턴스 만들기
[인스턴스 시작]
https://www.alibabacloud.com/ko
Alibaba Cloud: 클라우드 컴퓨팅 서비스
세계 최고의 클라우드 컴퓨팅 및 인공 지능 기술 회사는 전 세계적으로 확장 가능하고 안전하며 안정적인 클라우드 컴퓨팅 서비스를 제공합니다.
www.alibabacloud.com
알리바바 클라우드로 접속한다.
dns 콘솔에 들어간다
Host - blog
Value - webserver의 public IP값
blog.cloudywinter.shop 에 접속한다.
wget https://ko.wordpress.org/wordpress-4.8.2-ko_KR.zip
sudo yum install -y httpd php php-mysql php-gd php-mbstring wget unzip
cd /var/www/html
sudo unzip /home/ec2-user/wordpress-4.8.2-ko_KR.zip
sudo mv ./wordpress/* .
sudo chown -R apache:apache /var/www/*
sudo systemctl restart httpd
sudo systemctl enable httpd
다시 홈페이지로 들어가본다
데이터베이스 호스트는 데이터베이스의 엔드포인트를 복붙해오면 된다.
public IP가 없고 private IP밖에 없기 때문에 다이렉트하게 접근할 수 없다
연결- 추가구성 에서 [퍼블릭 액세스 가능]으로 바꾼다.
그리고 moba Xterm에서 Mysql에 접속해본다
만약에 안된다면, public subnet대신 private subnet이 선택되었기 때문이다.
미리 서브넷 그룹을 만들어서, DB에 이 서브넷 그룹을 적용시킨다.
새로운 서브넷그룹을 만들자
가용영역을 a,b,c,d 전부 선택한다. 낮은 숫자가 public subnet이다.
이를 선택한다
데이터베이스 - database-1 -수정 에 들어간다.
연결에서 서브넷그룹을 방금 만든걸로 바꿔준다.
는 중간에 고칠수가 없기 때문에 수정이 불가능하다...
퍼블릭 서브넷을 쓸 필요가 없다????
AuroraDB
- Mysql의 처리량의 5배,
- 기본 스토리지가 최대 64TiB
WEB02 인스턴스 만들기
세부 설정 에서 추가한다.
webserver는 web01로 바꿔준다.
web02를 moba Xterm에서 접속한다
web02 -> web01의 ip로 접속하면 ping이 간다.
SG-WEB 내 인스턴스 둘간의 통신을 할 때도 ICMP를 허용하거나 혹은 포트번호가 있어야 한다
web01에서 web02로 ping이 가는 이유는, ICMP가 설정되어 있기 때문이다.
SG-WEB의 인바운드 규칙을 편집해서 다 지워보고 다시 ping을 해본다.
ping이 가지 않는다.
동시에 HTTP도 삭제하였으므로 curl web01의ip를 하면 나타나지 않는다.
[모든 트래픽]으로 하면 모든 사람들이 내 ip만 알아도 접속 가능하다 <- 너무 위험하다
만약 이에 대한 소스를 자기 자신 (SG-WEB)으로 설정한다면 어떻게 되는가?
보안그룹내에 잇는 모든 인스턴스들이 포트를 열 필요 없이 통신이 가능해진다
단, 내부에서 연결된 것이므로 사설IP(Private IP)로 통신할 수 있다.
로드밸런서 만들기
EC2- 로드밸런서 들어간다
NLB를 클릭한다.
- 외부에서 접속해야 하므로 [인터넷 경계] 에 체크한다.
my-vpc로 바꾼 후, 가용영역을 a, c에 지정했으므로 2a, 2c에 체크한다
public, private로 나뉘어져 있는데 public subnet으로 선택해야 한다.
프로토콜, 포트 {프론트엔드} / 기본 작업 {백엔드}
[대상 그룹 생성]을 클릭한다.
IPv4 주소에 web01과 web02의 사설 IP를 입력한 후 [아래에 보류 중인 것으로 포함]을 클릭
아래로 두개가 내려온다.
[대상 그룹 생성] 을 클릭
다시 [로드 밸런서] 탭으로 들어가면 대상 그룹이 생겨 있다.
로드 밸런서를 생성한다.
둘다 unhealthy가 뜬다.
SG-WEB의 인바운드 규칙으로 가서, 아까 삭제했었던 HTTP를 추가한다.
ip 주소 확인한 뒤 접속해보면 congratulation이 뜬다
그리고
dns 이름으로 접속하면 wpress가 뜬다
이 dns이름을 줄이기 위해 cname을 설정한다
alibaba cloudㄹ ㅗ접속해서 cname을 만들어준다
ALB 생성하기
서브넷을 public으로
보안 그룹을 새로 생성한다
[새 보안 그룹 생성]을 클릭한다.
VPC는 디폴트값을 x버튼으로 삭제하고, My-vpc로 설정하도록 한다.
만든 후, 다시 로드 밸런서 탭으로 돌아간다.
새로고침 하면 SG-ALB가 생성되어 있다.
[대상 그룹 생성]을 클릭한다.
두개를 선택한 뒤, [아래에 보류 중인 것으로 포함] 클릭
[대상 그룹 생성] 클릭
다시 로드 밸런서 탭으로 돌아가서, TG-ALB를 선택한다.
그리고 로드 밸런서를 만든다.
dns 이름이 생성된 모습. 다시 알리바바로 가서 CNAME으로 이 링크의 길이를 줄인다.
wp와 두마리토끼가 번갈아서 뜬다.
왜 ALB는 보안그룹이 있는가?
웹서버로 들어갈 수 있는 세 가지 경로가 있는데, 우회하는 저 두 경로(도메인(blog~), IP 주소)를 막아야 한다.
SG-WEB의 소스(출발주소)에 SG-ALB를 추가하여, 우회하여 웹서버에 접속할 수 없도록 한다.
SG-WEB의 인바운드 규칙을 수정한다.
HTTP의 소스를 SG-ALB로 수정한다. 삭제 후 다시 생성해야 한다.
SG-ALB를 통해서 들어온 경우에만 허용하도록 하는 것이다.
그러면 blog.~ 도메인과 ip로는 접속할 수 없게 된다.
WEB01에서 WEB02로 접속하기
chmod 400 aws-key.pem
ssh -i aws-key.pem ec2-user@10.29.32.122
하면 들어가진다
인바운드 규칙에서 수정해서 이 방법으로 못들어가게 할 수도 있지만, 아웃바운드에서 편집을 통해 못들어가게 할 수도 있다.
컨텐츠 스위칭 하기(L7)
헤더 안에 어떤내용이 있는지 분석하여 그 내용에 맞게 이동시킬수 있다.
대상그룹 메뉴로 간다. - [대상 그룹 생성] 클릭
2개의 대상 그룹을 만든다.
모바일 ->선인장
크롬 -> 토끼
firefox->로드밸런싱(라운드로빈)
둘다 아니면 ->TG-ALB
이 되도록 한다.
대상 그룹 rabbit에서 WEB01을 draining한다.
같은 방식으로 cactus에서 web02를 draininng한다.(등록취소)
로드밸런서 탭으로 들어간 뒤 - 규칙 보기/편집 을 한다
[규칙 삽입] - [HTTP 헤더] 후 사진처럼 설정한다.
Mobile 앞, 뒤에 어떤 문장이 있는데, 우리가 알기 어렵다 -> wild card인 *로 대체한다.
* L4와 달리, L7은 컨텐츠를 분석한다 -> 글을 읽을 수 있기 때문에 리다이렉팅이 가능하다.
하지만 모바일로 들어가면 토끼 사진이 뜬다.
만약 모바일 크롬으로 들어간다면 어떻게 될까? 이런 혼란 상황을 방지하기 위해 우선순위를 mobile을 최상위로 부여한다.
우선순위를 조정한다.
그려면
각각 크롬에서는 토끼가 <-> 모바일에서는 선인장이 나온다.
AutoScaling
기존의 로드밸런서와 대상 그룹, WEB01을 삭제한다.
이미지 -> 탬플릿으로 -> 오토스케일링
- 기존에 쓰던 인스턴스를 계속 활용할 수는 없다 - 이미지로 만들어서 옮겨 와야 한다
한 대의 서버로 운영하는 것 -> 단일 장애 지점(SPOF; Single Point Of Failure)
- 오토스케일링그룹을 만든다
- ALB는 오토스케일링 그룹임과 동시에 타겟 그룹임과 동시에 보안 그룹이다.
- 오토스케일링이 원래 2개인데 CPU 사용량이 임계값인 70%를 넘는다=> 그러면 새로운 인스턴스가 늘어나게 된다.
- 하지만 무한정 늘릴 수는 없다. => DDoS 공격으로 인해 불필요하게 인스턴스가 발생할 수도 있다(왕과금) => 시물레이션이 필욯다.
- Min , Desired Capacity(Capa) : 최소 인스턴스의 개수, Max
- 수평적 확장 => Scale Out
- 필요없는 인스턴스를 지우는 조건 -> 30% 이하일 때는 지워 준다. => Scale In => 이 때 최소 개수 : Min
준비된 food.tar 파일을 WEB02에 업로드한다.
다시 www.cloudywinter.shop 으로 들어가보면 새로운 홈페이지가 뜬다.
이 사이트(original)를 AMI화 하여 template로 만든다.
이미지 - 택배박스
스냅샷 - 내용물
재부팅 안함 - 활성화 하고 이미지를 생성한다.
스냅샷 메뉴로 들어가 보면, 스냅샷이 자동으로 생성된 것을 볼 수 있다.
템플릿을 만들어놔서 필요할 때(Scale Up)마다 빠르게 추가할 수 있도록 한다.
시작 템플릿 메뉴로 들어가서 템플릿을 만든다............
'Public Cloud > AWS' 카테고리의 다른 글
AWS 실습 9 - S3 (0) | 2022.06.16 |
---|---|
AWS 실습 8 (0) | 2022.06.15 |
AWS 실습하기 6 (0) | 2022.06.13 |
AWS - RDS 개념, 실습 (0) | 2022.05.31 |
AWS - EC2 인스턴스 스토리지(EBS, EFS) (0) | 2022.05.30 |