리전
aws서비스를 제공하는 서버의 위치
리전은 물리적 위치이며 각 리전은 분리됨
또한 2개 이상의 가용 영역을 굥유
엣지 로케이션
물리적으로 가까이 존재해야 하는 서비스(CDN, DNS…)
네트워크 - 서버 - 디스크 - 새로운 서버 - 로드밸런서(부하 방지)
VPC(Virtual Private Cloud)
aws내 가상 네트워크 공간 생성
가상 데이터 센터
aws가용영역에 vpc생성
aws 관리 콘솔
cli, 스크립트
api, sdk: 클라우드를 자동화하여 효율적으로 사용
CIDR?
cider block: 클라우드의 영역, 크기 설정
10.0.0.0/16 => 앞의 16bit 고정, 뒤 16bit만 사용가능한 공간이 된다
ip주소에서 0000 0110 0000 0000 만 고정
10.대 IP를 사용하는 이유
10.대 IP: 가장 많은 주소영역 보유하기 때문에 10.대를 사용
128.12대?
192.168.대
는 사설 ip주소로서 집, 회사 등 내부 네트워크 ip로 사용하며, 다른 ip주소와 최대한 겹치지 않기 위해 사설 ip주소를 사용
서브넷
서버가 돌아갈 네트워크 공간
같은 vpc공간에서 다른 가용영역을 차지한다
겹치지 않는 CIDR을 설정해야 한다(10.0.1.0/24, 10.0.2.0/24)
사용할 vpc와 가용영역(서울:3개)을 지정한다
게이트웨이
외부의 요청과 가상 네트워크 공간을 연결
사용할 vpc에 연결할것인지 설정
라우팅 테이블
네트워크 패킷이 어디로 향할지 지정
route -rn으로 컴퓨터 내부 테이블 참조 가능
사용할 vpc에 연결
라우팅 테이블 추가: 0.0.0.0/0: 해석하지 않는 모든 요청을 게이트웨이로 설정
가용영역 내부에서는 자동으로 네트워크가 구성된다
어떤 서브넷에 지정할지도 설정
보안 그룹
vpc내 방화벽 룰을 적용
방화벽처럼 어떤ip, 어떤 port로 부터의 접근만 허용하겠다
사용할 vpc에 연결
인바운드 규칙: port, 프로토콜, 소스(0.0.0.0/0 접근 대상 제한 X)를 지정. 나가는 요청은 제한하지 않는다
EC2
인스턴스를 네트워크에 연결
IAM
권한: 파일을 읽고, 쓰고, 지우고 등등의 행위를 할 수 있는 권한
정책: 권한, 역할을 정의
역할: 사용자, 리소스 등이 받을 수 있다.
AMI(Amazon Machine Image)
OS, 관련 sw 등을 설치해놓은 파일
인스턴스 유형
t2: 정해진 computer power보다 조금 더 사용 가능(bursting), micro service에 적합
어떤 네트워크에 지정? 어떤 서브넷에 넣을것?
퍼블릭 ip 활성화?: 인터넷 연결 위해 aws public ip 풀에 ip 주소를 요청
IAM 부여
고급 세부정보
- 인스턴스가 생성됐을때 한번만 실행되는 스크립트
- 패키지 설치등을 실행
- 반드시 실행해야 웹 서버가 실행된다
실행 스크립트
#include
http://bit.ly/AWS101HOL-Linux-Userdata
#!/bin/sh
yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
yum -y install httpd php mysql php-mysql
chkconfig httpd on
service httpd start
if [ ! -f /var/www/html/ec2-linux-web.tar.gz ]; then
cd /var/www/html
wget https://for-distribution-cwk.s3-ap-northeast-2.amazonaws.com/ec2-linux-web.tar.gz
tar xvfz ec2-linux-web.tar.gz
fi
yum -y update
스토리지 추가
네트워크 스토리지(디스크)를 추가한다
키페어
키페어 없이 사용할 수도 있다
Elastic IP
고정하여 사용할 수 있는 ip
ip주소를 할당받아 인스턴스에 연결하여 사용
인스턴스에 ip주소를 부여
EBS(스토리지 서비스)
볼륨을 생성하여 추가할 수 있다
볼륨을 생성한 EC2 instance에 연결
IOPS
스토리지의 효율을 나타내는 수치
인스턴스 접속
기존에는 key pair를 사용하여 ssh로 접속했다
요즘은 session manager를 사용하여 웹브라우저로 접속 가능
EC2에 SSM 역할을 부여했기 때문에 사용 가능
인터넷 게이트웨이에 연결했기 때문에 인터넷 사용 가능(wget)
파일을 옮기고 서버를 실행
커스텀 AMI
이미 설치했었던 파일, 설정등을 인스턴스에서 불러와 이미지로 저장
새로운 인스턴스에 동일한 설정 적용을 위해 사용. 이미지로 저장된 설정을 새 인스턴스에 적용한다.
이미지 작업 위해 인스턴스를 중지해야 한다
Changing Elastic IP
새로운 인스턴스에 기존 EIP 적용
기존 인스턴스는
로스 밸런서
서버의 부하를 다른 인스턴스로 분산
가용성 증가
서로 가용영역이 다른 네트워크로 연결시 하나의 가용영역이 불가하더라도 서비스 지속 가능
라운드로빈 방식
로드 밸런서를 생성하고 이를 인스턴스들에 연결한다
클래식 로드밸런서
http, https, tcp 지원
ALB
Url path에 맞춰 로드 밸런싱
하나의 로드밸런서로 여러 urls 사용가능
웹 어플리케이션에 적합
Network LB
네트워크 레벨의 로드 밸런싱
게임 서버등에서 사용
정상 임계값: 정상적으로 보내는 해시체킹수
비정상 임계값: 해시체킹이 초과할 경우 보내지 않는다
제한시간: 해시체킹의 응답에 시간
간격: 해시체킹 요청 시간 간격
전체적인 구조
