IDC(리전) - 서버실, 전산실 ( Internet Data Center )
* 하나의 리전안에, 여러개의 IDC가 있다.
가상화 기술
하드웨어 서버를 직접 빌려줌
하드웨어는 아마존이 관리하고, 가상화된 서버를 빌려줌
가용영역 ( Availability Zone ) - 서버를 물리적으로 나누어 놓음 ( 한국, 일본 )
서버 수명 - 서비스 중단 가능성
엣지 로케이션 - 작은 캐시 서버 ( 빠른 데이터 송신 - Contents Delevary Network )
서버는 죽어도, 서비스는 죽지 않는다.
Direct Connect - 랜선으로 아마존 서버와, 나의 서버실 연결가능
온디맨드 : 원할때마다 사용가능한
VPC ( Virtual Private C )
- ec2가 올라가는 독립적인 나만의 네트워크
1. 한 계정당 5개
2. ip개수는 CIDR 규칙으로 할당
3. 동일 계정 속 VPC는 통신 대역이 달라야함
AMI를 클래스처럼 사용해, 인스턴스를 만든다.
AMI ( Amazon Machine Image )
Amazon Linux - Programing kit, library에 최적화 되어있다.
아키텍쳐
32비트, 64비트 - 메모리 표현가능 범위
x86, Arm - 사용 CPU
키페어
- 아마존 서버에 접속하기 위한 ID, PASSWORD
- 암호화 송신을 위한 것
보안그룹
- 포트단위 인아웃 관리, 방화벽 ( VPC 기준 )
인바운드 - 들어오는 트래픽
아웃바운드 - 나가는 트래픽
HTTPS : 443, HTTP : 80, SSH : 22
소스 - 접속가능한 IP 설정
탄력적 IP
새로운 ip를 할당받아, 인스턴스와 연결할 수 있다.
- 자동으로 받은 ip는, 인스턴스가 지워지면 사용이 불가능하다.
- 고정적인 ip를 할당받아 사용하고 싶을때,
가용영역
ap ( asia persipic )
northeast ( 북동쪽 )
2a ( 가용영역 넘버 )
인스턴스 상태
중지 - 일시 정지
종료 - 삭제
스위치 = 모뎀 = 공유기
하드웨어들을 논리적으로 다룬다.
퍼블릭 IP
- 외부에서 SSH ( Secure Shell )을 통해 접속가능한 IP
( 원격 호스트에 접속하기 위한 보안 규칙 )
프라이빗 IP
- 외부에서 접속 불가능한 IP
- 동일 VPC속의 인스턴스간 통신을 위한 주소
인터넷 게이트 웨이
- 인터넷과 VPC를 연결해주는 통로
서브넷
- VPC를 잘게 나눈, 여러개의 네트워크들
- 하나의 가용영역마다, 하나의 서브넷을 가진다.
- 퍼블릭, 프라이빗이 있다.
elastic load balancing ( L4 Switch )
트래픽을 받아, 붙어있는 서버로 분산시켜준다.
- 트래픽에따라 서버의 자원을 유동적으로 사용할 수 있게 해줌
오토스케일링
- 로드밸런서의 부하량에 따라, 여러가지 하드웨어 자원을 자동으로 늘려줌
AWS Lambda
- ec2와 다르게, 프로그램만 업로드 해놓고, 프로그램이 실행된 횟수만큼 돈을 낸다.
- 멀티클라우드가 안됨
Database
- Multi-AZ : 데이터를 서로 다른 가용영역DB에 동시에 저장한다
- 특정 디렉토리 밑으로 마운트한다.
clound front
Putty
- ssh, telnet을 지원하는
route 53
루트 파일 시스템
도메인
.com .co.kr - 영리
.net -
.org, .or.kr - 기관
다른 도메인을 Route53으로 가져오기
호스팅 영역 생성 - 나의 도메인 추가
레코딩 생성 - 나의 도메인과 인스턴스, 로드벨런서 등의 자원 연결
도메인으로 물어봄
루트 서버에게 닷컴 물어봄
닷컴 에게 내 도메인을 물어봄
네임 서버 주소
레코드
- 내 도메인을 AWS자원가 연결하기
가중치 - 트래픽을 지정
지리적 위치 - 서울에서 오는 요청은, 서울에서 처리하라
지연시간 - 속도가 가장 빠른 리전에서 처리하라
s3
- 웹하드
1. 웹서버로 사용가능
- Route53에서, S3의 CNAME을 매핑시키면 웹사이트 기능 제공
2. cors 사용가능
3. 백업 제공 ( 5TB )
4. 파일 검색시 돈 냄
- 신속 검색 : 5분
- 표준검색 : 3 ~ 5시간
- 대량검색 : 5 ~ 12시간
5. S3 인텔리전트 티어링
- 사용하지 않는데이터를, 돈이 안드는 공간으로 옮겨줌 ( 자동 )
버킷 생성
- 이름생성 조건이 존재함 ( 글로벌 공통 규칙 )
ACL
- 버킷안의 객체의 접근권한을 다른사람에게 부여하는 기능
- 다른 AWS 이용자가, 버킷에 파일 업로드 가능
- 퍼블릭 읽기 설정
- 태그에 읽기 권한 설정 가능
저장된 파일 uri
버킷이름.s3.리전.amazonaws.com/파일이름
CloudFront
- cdn 서비스, 엣지 네트워크
- 사용자와 가까운 리전에서 데이터 전송 ( 캐시된 데이터 )
- 데이터 전송 속도 증가
s3, 로드밸런서를 cdn화 시킬 수 있음
cdn이 s3에서 자원을 가져갈 수 있도록, 권한을 주어야한다.
CDN 작동 과정
1. 요청 받음
2. cdn에서 파일 확인
3. 없으면 원본 확인
4. 원본 가져와 카피해 저장 ( 캐싱 )
5. 요청에 응답
무효화
- 원본파일이 수정되었을경우, 이전에 캐시된 파일을 삭제하는 것
https
1. 브라우저가 신뢰할 수 있는 기관에서, 인증서(공개키)를 받아온다.
2. 개발자가 기관에서 인증서 발급
3. 브라우저가 도메인 접속후 https 세션으로 접속
4. 받은 https 요청을 처리후, 인증서와 함께 사용자에게 응답
5. 브라우저가 인증서를 확인하고, 응답의 신뢰성 확인
인증서 발급
*.도메인주소
형식으로 받아야, 모든 페이지를 https 로 보호할 수 있다.
인증서 내용
- 발급자 설명 : 누가 이 인증서를 발급했나?
- 인증 경로 : 여태까지 인증한 사람들 목록
RDS
- 데이터베이스 서비스
가용성 - 다른 리전에 DB 복제 가능
퍼블릭 엑세스 - VPC외부에서 DB 접근 가능하도록 설정 ( 포트를 열어줘야함 )
인스턴스와 연결하기
1. 인스턴스에 mariadb-server 설치
2. 인스턴스에서 RDS 연결할 수 있도록 포트 열어주기 ( 보안 규칙 )
3. 인스턴스에서 mysql명령어로 RDS 엔드포인트에 접속하기
EC2에 DB설치해서 사용가능
VPC - 네트워크 ( 인터넷 )
여러대의 컴퓨터를 연결한 것
노드 - 네트워크 속 컴퓨터 하나하나
프로토콜 - 데이터를 공유하는 규칙
TCP/IP - 컴퓨터마다 IP를 부여하여 통신하는 프로토콜
HTTP - HTML을 사용해 통신하는 프로토콜
시스코 - 네트워크 장비인 스위치 제작 회사
[OSI 7 계층]
물리 계층
- 전기신호를 0, 1 로 나누어 통신하는 계층
( 케이블, 스위치 등의 물리장치 이용 )
데이터링크 계층
- 전기신호의 오류와 흐름(Frame)을 관리하는 계층
( 기기의 Mac 주소를 사용해 통신 )
인터넷(네트워크) 계층
- 여러대의 컴퓨터를 구분하여, 데이터(Packet)를 가장 효율적으로 보낼수 있는 경로를 찾는 계층
( IP4 ) - 0.0.0.0 ~ 255.255.255.255
( IP6 ) - 0.0.0.0.0.0 ~ 255.255.255.255.255.255
2^8, 약 42억개
42억개로 부족하므로, 공인주소와 사설주소로 나누어서 사용한다.
전송 계층
- 오류 검출, 손상 복구, 중복 검사, 흐름 제어등의 작업을 통해,
신뢰성 있는 데이터(Segment)를 만들어 통신하는 계층
( 데이터가 Port를 거쳐가도록 함 )
TCP - 재전송 기능이 있음
UDP - 전송만 함
세션 계층
- 세션을 만들고 없애면서, 응용 프로그램이 통신을 관리하기위한 방법을 정하는 계층
표현 계층
- 데이터의 표현방식을 정하는 계층
데이터를 해석, 응용계층 데이터 부호화, 변화
데이터를 압축, 압축해제
데이터를 암호화, 복호화
응용 계층
- 응용 서비스, 프로세스
[VPN]
가상 사설 망 ( Virtual Private Network )
여러 컴퓨터끼리, 고유한 암호화방식을 사용해 통신하는 것
( 다른 사람들이 데이터를 볼 수 없음 )
[VPC]
가상 사설 클라우드 ( Virtual Private Cloud )
나의 AWS 자원끼리 통신할 수 있는 네트워크
넷마스크
네트워크 크기를 정해, 여러개의 서브넷으로 나누기 위한 기능
( ip주소를 나눔 )
네트워크의 사용가능한 호스트를 지정한다.
( 32비트 마스크를 이용 )
< 서브넷 마스크 255.255.255.0 >
앞의 255 부분은 고정하고, 0부분을 바꿔가며 사용하는 서브넷 사용
( 192.168.4.고정, 1~254 총 254개의 ip 주소 할당 가능 )
255부분 : 브로드캐스트 주소 - 네트워크 부분
0부분 : 할당가능한 네트워크 주소 - 호스트 부분
넷마스크 축약하기
255.255.255.255 = /32
255.255.255.0 = /24
255.255.0.0 = /16
255.0.0.0 = /8
< CIDR > - VPC 내부 사설망
172.31.0.0/16 - 넷마스크 16비트
256*256개의 ip주소 할당 가능
< ACL > - 방화벽
- VPC를 감싸는 방화벽을 설정할 수 있음
규칙번호가 큰 순서가 우선적으로 적용됨
아스타(*)가 제일 마지막으로 적용됨
20
00000000 00000000 0000 / 0000 00000000
255.255.
라우팅 테이블
- 스위치
VPC 0.0.0.0/0 에 인터넷 게이트웨이부여
VPC 내부에서 통신시에는, 서브넷 사용 ( 넷마스크로 IP 나눔 )
DHCP옵션세트
- IP자동할당
Lightsail
- 간편하게 클라우드 사용
IAM
- AWS 자원들을 여러 사람들이 함께 관리하기 위해, 사용자 계정 및 그룹을 관리하는 것
NAT ( 비싸다 )
- Nat gateway 이중화?
1. 사설 IP(VPC)를 공인 IP로 바꿔주는 역할
2. 포트포워딩 사용가능 해짐
3. 비싸다
4. 프라이빗 서브넷 인스턴스 (자원)을, 외부와 연결할때 사용
IGW ( 인터넷 게이트웨이 )
- VPC 내부에서 인터넷에 접속할 수 있도록 해줌
라우팅 테이블
1. public
vpc -> igw -> rt -> sub
2. private
vpc -> rt -> nat -> sub
3. 자동화
- 위의 과정을 스크립트로 제작, 상황에 따라 스크립트 실행