API Gateway
> 규모와 상관없이 REST(상태비저장) 및 WebSocket(상태저장) API를 생성, 게시, 유지하고 모니터링 및 보안하기 위한 AWS 서비스입니다
. 상태저장(Statful) : 서버가 클라이언트와의 통신 상태(state)를 계속 추적하며 이 상태 정보를 서비스 제공에 이용
. 상태비저장(Statless) : 클라이언트로부터 새로 도착한 명령문(request)에만 의존하여 서비스를 제공
* API란 : Application Program Interface
> 라이브러리에 접근하기 위한 규칙들을 정의한 것
운영체제와 응용프로그램 사이의 통신에 사용되는 언어나 메세지 형식
* REST API
> HTTP 통신 프로토콜을 이용해서 요청과 응답메세지를 주고 받는 것
Resource에 대해 GET,POST뿐만 아니라 PUT,DELETE 요청이 있고,
HTTP가 원래 stateless한 통신이기때문에, 헤더에 토큰을 설정해서 인증을 받음.
HTTP 통신을 기반으로 하기때문에 HTTP요청을 보낼 수 있는 모든 언어 및 환경에서 가능
- POST를 통해 해당 URI를 요청하면 리소스를 생성합니다.
- GET를 통해 해당 리소스를 조회합니다.
- PUT를 통해 해당 리소스를 수정합니다.
- DELETE를 통해 리소스를 삭제 합니다.
* URI(Uniform Resource Identifier) : 인터넷에 있는 자원을 나타내는 유일한 주소
* REST : Representational State Transfer
> 웹의 장점을 최대한 활용할 수 있는 아키텍쳐
AWS 백업/복구 아키텍쳐
> Snapshot 활용한 백업 및 복구
> Snapshot 백업본을 S3에 저장 시 3개의 AZ에 저장, 원격지 소산 구현
AWS DBMS 전환 지원 서비스
- AWS SCT(Schema Conversion Tool)
. 소스 데이터베이스의 스키마를 전환 대상 Amazon RDS instance와 호환되는 형식으로 자동 변환 가능
- AWS DMS(Database Migration Service)
. 동종 DBMS간 Migration, 이기종 DBMS간 Migration 지원
DNS 서버
- Name Server(Router53)을 미사용 시 LG CNS 운영팀의
Name Server 와 연동이 될 수 있도록 Endpoint를 CNAME 등록한다
- Public IP인 경우, A Record 등록을 통해서 한다
- LG*Net 내부 DNS를 Master DNS로 설정
* CNAME (Canonical Name) : 하나의 도메인에 다른 이름을 부여하는 방식. 도메인 이름의 또 다른 이름.alias ?
* A Record : Domain name에 하나의 IP 가 있음을 의미.
하나의 도메인(서비나 루트 포함)에 해당하는 IP주소의 값을 가지고 있음.
NAME TYPE VALUE
--------------------------------------------------
bar.example.com CNAME foo.example.com
foo.example.com A 192.0.2.23
* 인트라넷 또는 VPC 내부에서 Web 서비스 접속 시 내부 Web ELB 를 경유 하도록 DNS 설정
- LG*Net 외부 DNS -> 외부 Web ELB 도메인 네임 CNAME 등록
- LG*Net 내부 DNS -> 내부 Web ELB 도메인 네임 CNAME 등록
EC2 인스턴스의 EBS Volume에 대한 Snapshot 백업
- Volume 수준의 Snapshot 생성
- 첫번째 Snapshot은 전체볼륨에 대한 복사본,
이후 Snapshot은 마지막 Snapshot이후 변경된 디바이스의 블록만 저장하는 증분 백업
- S3에 백업 저장 시 3개의 AZ에 저장(소산)
EC2 인스턴스의 EBS Volume에 대한 Snapshot 복구
절차1:백업받은 Snapshot에서 Volume을 생성
절차2: Instance에서 기존 Volume의 umount
절차3: Instance에서 기존 Volume의 할당된 내역 제거
절차4: 신규 생성된 Volume을 Instance에 할당
절차5: 신규 Volume을 Instance에서 mount
EFS는 AZ 바깥에 위치함
NAT G/W : AZ 당 1개씩 구성
: 윈도우 업데이트 와 S3등 AWS Public 서비스 사용 목적
On-Premise와 AWS간 migration 전환
- Z-Converter나 CloudEndure 사용
1> Migration Manager 서버 URL 접속 (On-Premise 내부망에 구축)
2> On-Premise 운영서버에 Agent 설치
3> Cloud 데이터센터에 인스턴스 생성 후 Agent 설ㅊ
4> Migration 마법사를 통한 Migration 수행
5> Cloud 데이터센터에서 On-Premise 내부망으로 migration 가능(탈 Cloud 전략)
PROD와 DEV/QA분리는 SandBox 이용
RDS의 제약사항 확인 필요
. 파라미터 그룹을 통해서만 파라미터 조정이 가능.
. On-Premise환경과는 달리 변경할 수 없는 파라미터가 존재함.
Security
* Security Group 제약사항 : SG당 Max 허용 Rule 60개 , stateful
> Allow만 설정가능, Statful이므로, outbound rule과 상관없이 inbound rule에 따름.
* ACL당 규칙목록은 inbound/outbound가 각각 최대 20개까지 지정 가능, stateless
> 상태 비저장이라 inbound rule과 outbound rule이 각각 적용됨
> Allow 와 deny설정 가능, default는 모두 deny
* VPC당 최대 ACL갯수는 200개
* Network ACL의 특징
- VPC의 Network ACL은 Subnet 단위로 적용
- 직접 생성한 Network ACL 정책은 All Deny 상태로 사용자가 정책을 추가하지 않고 해당 Network ACL로 교체하면 Subnet의 모든 통신이 두절됨
- 동일한 Network ACL을 여러 Subnet에 적용하는 것은 가능하나 한번에 한개의 Network ACL만 Subnet에 연결할 수 있음
- Network ACL 규칙 목록은 번호가 낮은 것부터 우선으로 적용
- Network ACL은 Stateless
서버 접근제어 : Bastion Host 사용
UTM
- Host based UTM (Agent 방식)
- 관문형 UTM
> 인스턴스의 N/W bandwidth 제한이 있음: 서비스의 부하집중으로 인한 N/W 성능 저하
VPC Endpoint : S3, dynamoDB,kinesiss,ecs 등 public service 연동시 권장
VPC 개발 / QA 환경
- 운영환경과 개발/QA 환경은 VPC를 분리하여 구성
- 운영환경과 동일 VPC 내에 Subnet분리하여 개발/QA 환경을
구성 시 운영팀과 협의
VPC Flow logs
- Flow log사용을 위해 아래 두가지 설정
> VPC Flow log를 위한 CloudWatch의 log group 생성
> 생성한 log group에 log stream을 사용할 수 있는 IAM role 권한 지정
표준 아키텍처상의 VPC flow log
- Flow logs가 VPC내의 cloudWatch에 저장 => logging VPC의 CloudWatch에 다시 저장(중복저장) : 감사에 활용
VPC 간 통신은 인트라넷을 경유하도록 구성
- VPC Peering : Routing 복잡성을 고려하여 5개 미만 일 경우 사용
- Transit gateway 사용을 권장
(DX연결 필요 시 Direct Connect Gateway 을 추가구성)
※ 현) Transit gateway가 Direct Connect Gateway기능 미 지원
VPN (Site to Site: DX 미구성)
- Customer Gateway 구성(VPN 연동할 장비 IP)
- Virtual Private Gateway 구성
- VPN 연결 생성
WAF - 운영팀에 관리 및 관제가 가능한 한 제품으로 선정하여 구성
WAS session Store Subnet
(WAS Auto Scaling)
> 일반적인 cache와 다르게 session store를 통해서 읽고 쓰는 형태
세션이 죽어도 세션 데이터가 session store에 남아있음
> Cache의 경우 세션이 끝날경우 session 정보도 끝남