Elastic Compute Cloud (EC2)
- cloud 환경안에서 크기가 유연히 변하는 기능
- 예측할 수 없는 데이터 처리, 빅데이터 처리 시 미리 사용량 예측 불가능 -> 사용하는 양에 맞춰 유동적으로 변화시켜줌! (키면... 돈들어간다!)
- 지불 방법으로는 On-demand, Reserved, Spot이 있음
- 개발 후 TEST할 때 On-demand를 주로 사용 -> 시작/끝 시간 모름 -> 사용량에 따라 돈을 내기때문에 처음 초기시 적합
- 개발 시작/끝 미리 예측 가능할 때 사용. 안정적으로 사용량이 정해져 있을 때 사용
- Spot은 경매!
- EBS (EC2안에 있는 디스크)
EBS (Elastic Block Storage)
- 어떤 상황에 어떤 볼륨을 사용해서 효율적으로 사용할지 결정해야함
- File System이 생성됨(로컬로 옮길수도 있음)
- EBS는 Availability Zone (AZ)에 생성됨. 하나의 Region안에 여러개가 생성되어 한쪽이 망가지면 백업된 다른 곳을 통해 사용 가능해짐
EBS 볼륨 타입
<<SSD군>>
1) General Purpose SSD (GP2) : 최대 10K IOPS를 지원하며 1GB당 3IOPS 속도가 나옴 (가장 보편적)
2) Provisioned IOPS SSD (IO1) : 극도의 I/O률을 요구하는(예시 : 매우 큰 DB관리) 환경에서 주로 사용됨. 10K 이상의 IOPS를 지원함 (방대한 양의 데이터 처리시 사용_but 가격이...)
<<Magnetic/HDD군>>
3) Throughput Optimized HDD (ST1) : 빅데이터 Datawarehouse,
Log 프로세싱시 주로 사용 (boot volume으로 사용 가능 X = 운영체제 사용 불가)
4) CDD HDD (SC1) : 파일 서버와 같이 드문 volume 접근시 주로 사용, 역시 boot volume으로 사용 불가능하나 비용은 매우 저렴함 (빈번한 입출력 X 오랫동안 저장할 때 사용 boot volume X)
5) Magnetic (Sandard) : 디스크 1GB당 가장 싼 비용을 자랑함. Boot volume으로 유일하게 가능함
ELB (Elastic Load Balancers)
- 서버 흐름을 균형있게 보내주는 역할
- 서버 하나에 Traffic이 몰리는 병목현상 방지 (속도 영향)
- Traffic을 Unhealthy instance -> healthy instance로 보내줌
1. Application Load Balancer : OSI Layer7에서 작동됨(네트워크 가장 상층)
-> HTTP, HTTPS와 같은 traffic의 load balancing에 가장 적합함
-> 고급 request 라우팅 설정을 통하여 특정 서버로 request를
보낼 수 있음(=루트변경,라우팅 커스터마이징가능)
2. Network Load Balancer : OSI Layer4에서 작동됨, 매우 빠른
속도를 자랑하며 Production환경에서 종종 쓰임
-> 극도의 performance가 요구되는 TCP traffic에서 적합함
-> 초당 수백만개의 request를 아주 미세한 delay로 처리 가능(구글 네이버같은 큰 서버에 적합)
3. Classic Load Balancer_중요 : 현재 Legacy로 간주됨, 따라서 거의
쓰이지 않음 (앞선 ELB보다 성능은 뒤쳐짐)
-> Layer7의 HTTP/HTTPS 라우팅 기능 지원
-> Layer4의 TCP traffic 라우팅 기능도 지원
ELB의 Error는 504 Erorr로 웹서버, 데이터베이스 layer에서 해결 가능
X-Forwarded-For 헤더_ 중요
- EC2는 private IP만 볼 수 있어, 어디서 흘러온지 모른다 -> X-Forwarded-For 헤더를 통해 Public IP address를 확인 할 수 있음 (시험 출제)
Route 53
- AWS에서 제공하는 DNS 서비스 (= 도매인주소 구매해서 3가지 backend로 연결시키는 것)
- EC2 instance
- S3 Bucket
- Load Balancer
실습
- Route 53을 통해 Chabbo.link 생성!
EC2 실습
- Putty, Puttygen 다운
- putty : ssh를 사용해 원격 접속
- puttygen : pem을 ppk로 변환 (putty는 ppk만 인식하기 때문)
- httpd, apache를 설치해주고 간단하게
<html>~~</html>
을 사용해서 index.html을 만들었다.
문제발생!
- 만들었으나 계속 사이트에 접속할 수 없다는 문구가 나온다...
퍼블릭 IPv4 주소 넣으면 다들 되던데...?
- 방화벽 풀어줌 (반응 없음)
- 생성은 제대로 되었으나 들어가지 못하는건 보안에 문제가 있는 것이라 생각해서 보안쪽을 보니, 보안 인바운드 유형에서 SSH만 들어갈 수 있도록 설정되어 있었다.
-> 보안그룹 > 인바운드규칙편집 > http, https, 유형 설정, 소스도 전체ipv4로 변경 > 저장
- 참고 :
인바운드 (Inbound): 외부 -> EC2 인스턴스 내부 허용
아웃바운드 (Outbound): EC2 인스턴스 내부 -> 외부 허용
그리고 나서 들어가보면
따란~ Yesssss!!! 오늘도 즐거운 네트워크 세계~~