0615-AWS

hyejin·2022년 6월 15일
0

Auto Scaling

인스턴스 생성

  • 이름 : ORIGIN
  • 애플리케이션 및 OS 이미지 : Amazon Linux 2 AMI (HVM)
  • 인스턴스 유형 : t2.micro
  • 키 페어 : aws-key
  • VPC : MY-VPC
  • 서브넷 : MY-PUBLIC-SUBNET-2A
  • 퍼블릭 IP 자동 할당 : 활성화
  • 방화벽(보안 그룹) : SG-WEB
  • 스토리지 구성 : 8GiB gp2
  • 사용자 데이터
#!/bin/bash
yum install -y httpd git
systemctl enable --now httpd

alibaba cloud DNS

  • Alibaba Cloud DNS에 Add Record
  • Host : www
  • Value : ORIGIN public IP

▶ www.hyejin36.shop

mobaxterm으로 접속하기 (www.hyejin36.shop)

  • food.tar 업로드, 풀기
[ec2-user@ip-10-24-15-66 ~]$ ls
food.tar
[ec2-user@ip-10-24-15-66 ~]$ sudo tar -xvf food.tar -C /var/www/html/

이미지 생성

  • 만든 ORIGIN으로 이미지 생성 (이미지는 껍데기,,, 스냅샷이 중요)

  • 이미지 이름 : MY-AMI

  • 재부팅 안 함: 활성화 체크

시작 템플릿 생성

  • 이름 : MY-TEMP
  • Auto Scaling 지침 체크
  • 애플리케이션 및 OS 이미지 : 내 AMI => MY-AMI
  • 인스턴스 유형 : t2.micro
  • 키 페어 : aws-key
  • 서브넷 : 시작 템플릿에 포함하지 않음
  • 보안 그룹 : SG-WEB

Auto Scaling 그룹 생성

  • 이름 : MY-ASG
  • 시작 템플릿 : MY-TEMP
  • VPC : MY-VPC
  • 가용 영역 및 서브넷 : ap-northeast-2a (MY-PUBLIC-SUBNET-2A) / ap-northeast-2c (MY-PUBLIC-SUBNET-2C)
  • 로드 밸런싱 : 새 로드 밸런서에 연결
    • 유형 : Application Load Balancer
    • 이름 : MY-ASG-ALB
    • 로드 밸런서 체계 : Internet-facing
    • VPC : MY-VPC
    • 가용 영역 및 서브넷 : 퍼블릭으로 선택
    • 기본 라우팅 : 대상 그룹 생성 -> TG-ASG-ALB
  • 원하는 용량 : 2 / 최소 용량 : 1 / 최대 용량 : 4
  • 알림 추가 > SNS (Simple Notification Service) - 이메일, SNS
    • 대상 : MY-SNS
    • 해당 수신자 : shj980306@naver.com

  • 인스턴스에서 확인

  • 메일함에서 확인 (Confirm subscription)

alibaba cloud dns

  • CNAME으로 변경하고 로드밸런서 DNS로 변경

※ 안될 경우 보안그룹 SG-WEB인지 확인!!

동적 크기 조정 정책 생성 (확장)

  • auto scaling 그룹 > 자동 크기 조정
  • 정책 유형 : 단순 크기 조정
  • 크기 조정 정책 이름 : ScaleOutPolicy
  • CloudWatch 경보 설정 : ScaleOutAlert >> ↓↓↓ (아래에서 새로 생성)
  • 작업 수행 : 추가 / 1
    ※ 경보가 울리면 EC2 인스턴스 하나씩 더 생성

CloudWatch 경보 생성

  • 지표 선택 > 찾아보기 > EC2 > Auto Scaling 그룹별 > CPUUtilization

  • 70보다 같음으로 설정

  • 경보 상태 트리거 : 경보 상태 / 기존 SNS 주제 선택 / MY-SNS

  • 경보 이름 : ScaleOutAlert

동적 크기 조정 정책 생성 (축소)

  • auto scaling 그룹 > 자동 크기 조정
  • 정책 유형 : 단순 크기 조정
  • 크기 조정 정책 이름 : ScaleInPolicy
  • CloudWatch 경보 설정 : ScaleInAlert >> ↓↓↓ (아래에서 새로 생성)
  • 작업 수행 : 제거 / 1
    ※ 경보가 울리면 EC2 인스턴스 하나씩 더 제거

CloudWatch 경보 생성

  • 지표 선택 > 찾아보기 > EC2 > Auto Scaling 그룹별 > CPUUtilization

  • 30보다 작거나 같음으로 설정

  • 경보 상태 트리거 : 경보 상태 / 기존 SNS 주제 선택 / MY-SNS

  • 경보 이름 : ScaleInAlert

▶ 10분 후

mobaxterm으로 접속하기 (ASG01)

[ec2-user@ip-10-24-42-196 ~]$ top
[ec2-user@ip-10-24-42-196 ~]$ yes > /dev/null &
[1] 30666

-> auto scaling에서 부하를 주기위한 명령어

  • 5분 후 부하가 70 넘었기 때문에 인스턴스 1개 증가

보안 그룹 및 네트워크 ACL

※ 특정 IP 기준

  • 보안 그룹 (허용)
  • 네트워크 ACL (차단)

vi /etc/ssh/sshd_config

에서 port번호 221로 변경

인스턴스 생성

  • 이름 : WEBSERVER
  • 애플리케이션 및 OS 이미지 : Ubuntu 20.04
  • 인스턴스 유형 : t2.micro
  • 키 페어 : aws-key
  • VPC : MY-VPC
  • 서브넷 : MY-PUBLIC-SUBNET-2A
  • 퍼블릭 IP 자동 할당 : 활성화
  • 방화벽(보안 그룹) : SG-DB
  • 스토리지 구성 : 8GiB gp2

mobaxterm으로 접속하기 (ORIGIN)

  • aws-key.pem 업로드
  • origin에서 dbserver로 접속
[ec2-user@ip-10-24-15-66 ~]$ chmod 400 aws-key.pem
[ec2-user@ip-10-24-15-66 ~]$ ssh -i aws-key.pem ubuntu@10.24.104.210

ping 나가게 하기

※ NAT 게이트웨이는 퍼블릭 서브넷에 반드시 있어야 함.

NAT 게이트웨이 생성

  • 이름 : MY-NGW
  • 서브넷 : MY-PUPBLIC-SUBNET-2D
  • 연결 유형 : 퍼블릭
  • 탄력적 IP 할당

  • 라우팅 테이블 > MY-PRIVATE-SUBNET-RTB > 라우팅 편집
  • 대상 : 0.0.0.0/0 -> MY-NGW

-> ping 나감
(인터넷 연결을 위해 퍼블릭 IP 필요)
(NAT 게이트웨이 대신 인터넷 게이트웨이 연결하면 ping 나감)

EFS (Elastic File System)

  • 완전 관리형 서비스 : 고가용성, 자동백업, 자동조정

EFS 생성

  • 이름 : MY-EFS
  • VPC : MY-VPC

보안 그룹 생성

  • 이름 : SG-EFS
  • VPC : MY-VPC
  • 인바운드 규칙 : NFS / SG-ALB

※ SG-ALB 인바운드 규칙 추가 - SSH / anywhere

Amazon EFS

  • 파일시스템 > 네트워크 > 관리
  • 보안 그룹 SG-EFS로 선택

mobaxterm으로 접속하기 (ORIGIN)

[ec2-user@ip-10-24-15-66 ~]$ sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport fs-027741f1ea61ce44f.efs.ap-northeast-2.amazonaws.com:/ /mnt
  • 보안 그룹 > SG-EFS > 인바운드 규칙 추가
  • 인바운드 규칙 추가 : NFS / SG-WEB
[ec2-user@ip-10-24-15-66 ~]$ sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport fs-027741f1ea61ce44f.efs.ap-northeast-2.amazonaws.com:/ /mnt
[ec2-user@ip-10-24-15-66 ~]$ df -h
Filesystem                                               Size  Used Avail Use% Mounted on
devtmpfs                                                 474M     0  474M   0% /dev
tmpfs                                                    483M     0  483M   0% /dev/shm
tmpfs                                                    483M  512K  482M   1% /run
tmpfs                                                    483M     0  483M   0% /sys/fs/cgroup
/dev/xvda1                                               8.0G  1.7G  6.4G  21% /
tmpfs                                                     97M     0   97M   0% /run/user/1000
fs-027741f1ea61ce44f.efs.ap-northeast-2.amazonaws.com:/  8.0E     0  8.0E   0% /mnt

S3 (Simple Storage Service)

CloudFront

  • 전 세계 네트워크를 통해 콘텐츠 제공

0개의 댓글

관련 채용 정보