1. NACL / Security Group 차이점
- NACL : Subnet에 적용하는 접근통제 보안설정
- Security Group ; EC2에 적용하는 접근통제 보안설정
2. Inspector (보안 평가도구) : 에이전트형 보안평가도구 (Application 보안약점)
3. Certificate Manager AWS 무료 인증서 발행도구 : ACM은 AWS 자체 서버 인증서를 발행
- EC2에서 바로 이용은 불가능하며 ELB, CloudFront 등에 사용
4. AWS WAF
5. AWS Shiled : DDoS 대응 서비스
6. Trusted Advisor : Cost Optimization, Performance, Security, Fault Tolerance, Service Limits
7. ELB(Elastic Load Balancer) : L4 시스템 (공인 -> 사설)
8. EC2
- 온디맨드 인스턴스 : 일반적인 제공방법 사용한만큼 돈을냄
- 예약 인스턴스 : 2-3년 등 일정 긱간 예약하여 할인을 받는 예약 인스턴스 (비용절감효과)
- 스팟 인스턴스 : 입찰을 통해 아주 저렴하게 사용하는 인스턴스 형태
9. Public IP / Elasctic IP
- Public IP : 외부 일반 사용자가 직접 접속 가능한 공인 IP이지만 AWS에서 EC2를 중지/실행 하면 변경됨
- Elastic IP : Public IP와 같지만 변경되지 않는 IP
- EIP는 할당받고 사용시 과금이 안되지만 사용안할경우 과금됨
10. EBS(Elastic Block Store) 파일 스토리지, 외장하드 (OS는 EC2에 설지, 데이터는 EBS에 설치)
- EBS 데이터 복구 : 스냅샷 / EC2 OS 복구 : AMI
11. AMI (Amazon Machine Image) : 아마존에서 제공하는 서버 이미지, 미리 만들어진 Linux, Windows 이미를 이용하여 서버 생성
- 서버를 만든 후 어플리케이션을 설치하고 다시 이미지로 생성 가능
12. 서버리스 컴퓨팅(Lambda) : 프로그램 실행기반으로 AWS가 관리, API Gateway라고 하는 HTTP의 API 생성 서비스와 조합하여 사용
- HTTP/S 요청 -> API Gateway -> Lambda
13. Route53 : 도메인 구매, DNS 서비스 제공, GSLB 기능 제공 (COM 12불)
14. RDS(Relational Database Service) : AWS에서 제공하는 관계형 DB
15. NoSQL (DynamoDB, ElasticCache, RedShift, ElasticSearch, CloudSearch)
16. S3(Simple Storage Service) ; 파일 스토리지 가용율 99.9999999%
- 외부로 노출되는 정적 웹페이징 기능 제공
17. Amazone Glacier : 데이터 아카이브용도, 장기백업 용도의 스토리지 서비스 (비용 저렴)
18. 파일 스토리지 볼룸(EFS) : NFS4.1을 지원하는 파일스토리지 서비스 -> NAS 형태로 사용
19. CDN(Contents Delivery Network)
- Cloud Front : 사용자가 서비스를 요청한 위치에서 제일 가까운 서버에서 서비스 제공
20. CloudWatch : AWS에서 제공하는 인프라 기본 모니터링 시스템
- CPU, 네트워크, 디스크 I/O 모니터링 기본 제공 (메모리는 별도의 스크립트를 생성해야 함)
- 5분단위로 모니터링하며 무료임 -> 1분 단위로 모니터링 가능하나 유료임
- 로그는 2주동안 저장됨 (일반적으로 S3에 저장됨)
21. SES(Simple Email Service) : 아마존에서 이메일로 알림을 전달하는 서비스
22. 오토스케일링 기능 : EC2 서버가 자동으로 추가되어 서비스 안전성을 유지하는 기능
- CPU가 50% 이상일 경우 서버를 1대 더 자동으로 증설하게 함 -> 설정시 AMI가 서비스의 동일 EC2를 증설함
23. CloudTrail : AWS의 API호출을 기록하고 로그를 남기는 서비스
- 클라우드 감사로그 (서버간 통신의 로그가 아님)
24. CloudFormation(자동 구축 도구) : 템플릿 파일을 이용해 VPC, ELB, EC2를 한번에 구축할 수 있게 해주는 서비스
25. Storage Gateway : 하이브리드 환경에서 온프리메스의 데이터를 AWS에 전송할 경우 사용함
26. 데이터 마이그레이션 서비스 (DMS) : 온프레미스 -> AWS, AWS -> AWS, AWS -> 온프레미스 마이그레이션 시 이용
27. SnowBall : 대량의 데이터를 AWS로 마이그레이션 할 때 이용하는 서비스
-- IAM
1. 루트계정 : AWS 계정 생성하기를 통해 만들어진 계정을 루트 계정이라고 부름 (AWS 리소스에 대한 모든 권한을 가지고 있는 Master or Admin 계정임)
2. IAM(Identity and Access Management) : IAM을 사용해서 루트 계정 아래 User 및 User Group을 생성하고 권항을 관리할 수 있음
- IAM을 활용하면 사용자별로 액세스 가능한 AWS 리소스를 제어할 수 있음
- Service > IAM > 그룹 (그룹생성 및 관리)
- Service > IAM > 사용자 > 사용자 추가 (사용자 및 권한 추가)
-- VPC
RFC1918 사설 네트워크망 구조
1. VPC (Vritual Private Cloud)
- 하나의 VPC는 하나의 Region내에서만 생성 가능 (가용 IP 2^16=65535개)
2. Subnet
3. Route Table
- Local : VPN 내 다른 Subnet으로 Traffic Routing
- Internet Gateway (IGW) : 인터넷 외부로 Traffic Routing
- Virtual Private Gateway (VGW) : 관리자가 임의로 정의한 Destination Traffic routing
- 모든 Subnet은 1개 이상의 Routing Table을 가지고있어야 하며 routing 테이블은 여러개의 Subnet에 중복 적용 가능하다
4. Public Subnet / Internet Gateway
- EC2 Instance는 Private IP외 EIP, Public IP 등 총 2개를 가질 수 있음
- 인터넷과 통신 가능한 Subnet을 Public subnet이라고 함
- EC2 > EIP > ROUTER > Internet Gateway > Internet
5. Private Subnet & NAT
- EIP를 가지지 않고 Pricvate IP만 가지고 있으며, Internet In/Outbound 연결이 불가능하며 단지 Subnet으로만 연결 가능
- EC2 > ROUTER > SUBNET > EC2
- Private Subnet 사용시 Outbound Traffic으로 Internet 통신시 NAT를 이용하여 가능함
- 이는 Private Subnet에 존재한 EC2가 Public Subnet으로 향한뒤 Public subnet은 이 트랙픽을 다시 Internet Gateway로 라우팅하는 기법임
6. VPN : Amazon VPN 이용시 VPN GW를 설치해야 함 , IPSEC, IKE등 여러가지 방법으로 제공함
- VPN을 이용하고자 한다면 VPC 설계시 Subnet 구성을 신중히 해야함 (10.0.0.0/16으로 VPN Full Range 구성 시 VPN의 IP가 겹치거나 Network 구성이 꼬일 수 있음)
7. Security Group : VPC 안에서 일종의 방화벽 처럼 이용됨, In/Outbound 트래픽을 Port 단위로 접근제어할 수 있는 기능을 제공함 (방화벽)
- 이 기능을 이용하여 DMZ와 같은 개념을 구현할 수 있음
- Security Group은 기본적으로 Instance 단위로 적용 가능
- 동일 Subnet 내 통신일 경우 ACL 규칙과 상관없이 Security Gorupo의 규칙을 적용
- Security Group의 지정방식은 Allow 지정 방식이며 Deny 지정은 불가함
- 기본적으로 Inbound는 ALL DENY, Outbound는 ALL ALLOW (삭제가능)
- Security Group은 Stateful하기 때문에 허용된 Inbound 트래픽에 대한 응답은 Outbound 규칙에 관계없이 허용됨
- ACL과 Security Group을 동시에 이용하게되면 Trouble Shooting시 어려움을 격을 수 있고 구성이 복잡해지므로 하나를 정해서 사용하는 것을 추천함
8. ACL : Stateless 기반의 Subnet 단위 접근통제 제공 (Stateless 특징상 Inbound 트래픽과 Outboud Traffic을 모두 설정해줘야함)
- Stateful 방화벽의 경우 Inbound 정책 허용 시 연관된 Outbound 트래픽은 허용처리되나 Stateless 제품의 경우 그렇지 않음
- Stateless ACL 관리시 Ehemeral port range(32768 - 60999)를 허용시켜야 함
- VPC ACL은 서브넷 단위로 적용 가능, 초기 ACL 정책은 ALL DENY 정책으로 정책을 수정하지않으면 Subnet은 모든 통신이 두절됨
- ACL은 여러 서브넷에 적용 가능함, 서브넷은 한번에 한개의 ACL만 연결 가능함
- ACL 규칙 목록은 번호가 낮은것부터 우선으로 함, VPC당 최대 ACL 개수는 200개임, ACL당 규칙 목록은 Inbound 최대 20, Outbound 최대 20개까지 지정가능
- ACL은 Stateless 방식으로 Outbound 트래픽에 대한 컨트롤을 수행해야 함 (Ehemeral Port)
9. Bastion HOST : 관리목적의 시스템(특정 오퍼레이팅 IP만 허용하여 접속하게하고 이후 계정의 권한에 맞는 접속 정책 적용)
- Bastion host 생성 후 외부에서 접속하게 하고 이후 접속통제는 서드파티 제품을 이용하는게 좋음(Vault 등)
- 이 부분은 추후 상세 업데이트 예정
10. FLOW LOG : Instance에게 유입되는 트래픽을 모니터링할 수 있음 -> 로깅 데이터는 CloudWatch Log를 사용하여 저장하게됨
- 적용방법 : VPC FLOW LOG를 위한 Cloud Watch의 Log Group 생성 > 생성한 Log Group에 Log Stream을 사용할 수 있는 IAM Role 권한 지정
11. Internet GW : 하나의 VPC에 하나의 IGW 지정가능
13. VPC Peering : VPC간 동신이 필요할 때 이용
- 다른 Region에 있는 VPC간 Peering 연결은 불가능함
- 두 VPN의 CIDR 블럭이 중복되는 경우 연결이 불가능함
- VPC당 Peering은 최대 50개 가능, VPC Peering 간 MTU는 1500byte이다 --> 상세 구성방법 업데이트
12. Recommend 구성
- Multi AZ 구성을 이용하여 가용성을 늘리고, Public/Private Subnet을 구분함으로 보안성을 높힐 수 있음
- 초기 환경 세팅이 불완전하면 운영중 환경을 변경하기 매우 어렵기 때문에 초기 단계의 설계를 잘 해야함
-- Container
1. Docker 특징
- NameSpace
- PID NameSpace : 각 프로세스에 할당된 고유한 ID인 PID를 기준으로 다른 프로세스를 격리, 네임스페이스가 다르면 액세스가 불가능함
- Network Namespace : 네트워크 리소스를 네임스페이스마다 독립적으로 가져감
- UID Namespace : 사용자 UID와 그룹 GID를 네임스페이스별로 구분 (A컨테이너의 권한으로 B컨테이너를 관리할 수 없다)
- Mount Namespace : 리눅스 디바이스를 인식하기 위해 마운트 필요, 파일시스템 등 마운트된 디바이스를 네임스페이스별로 격리
- UTS Namespace : 호스트명이나 도메인명을 네임스페이스별로 독자적으로 설정 가능
- IPC Namespace : 프로세스간 통신(IPC, Inter Process Communication)에 필요한 공유 메모리(Shared Meme), 세마포어, 메시지큐 등을 독자적으로 사용
- Cgroupos(Control Group) : 컨테이너에서 사용하는 리소스를제한함으로써 하나의 컨테이너가 자원을 모두 사용하지
못하게함, 그룹에 계정 구조를 적용하여 체계적인 리소스관리 가능
- Cpu, CpuAcct, CpuSet, Memory, Devices, Freezer, Net_cls, Blkio
- 네트워크 구성:Local(Eth0) 192.168.0.15/24 > Virtual Ethernet Bridge(Docker0) 172.16.0.0/16 > Container1(eth0) 172.16.0.5/16 / Container2(eth0) 172.16.0.6/16
- 192.168.0.15:8080 > VEB > 172.16.0.5:8080 (VEB역할은 HOST 요청을 Container로 라우팅하는 역할을 함)
- Volume : Volumes(파일시스템 특정영역, Docker만 접근가능), Bind Mounts (파일시스템 자체), TMPFS(메모리 저장) 방식 사용
- 도커 이미지는 도커파일로 만들어진 여러 레이어로 이루어져 있고 각 레이어는 읽기전용임, 이미지를 가지고 새로운 컨테이너를 생성하면 읽고 쓸 수 있는 레어가 추가되며
이를 컨테이너 레이어라고 함, 컨테이너를 가지고 잦ㄱ업을 수행할 때 생기는 변경사항을 모두 이곳에 저장하고, 읽을때는 도커
1. Docker 구조
- Docker Client와 Server : Docker command = Client / Docker Deamon, Engine = Server
- Docker Image : Docker Container에서 실행되는 이미지
- Docker Registries : Docker Image가 저장/관리되는 Repository
- Docker Containers : Docker Image가 시행된 상태 (프로세스 단위, Docker는 하나의 컨테이너에 하나의 어플리케이션을 사용하는 것을 권장함)
- Docker Compose : 복수의 Docker Container를 모아서 종합적인 어플리케이션 스택을 정의하고 운영하도록 하는 서비스
Compose 파일을 사용하여 전체적인 어플리케이션 서비스를 설정한후 각각의 컨테이너들을 따로 실행필요 없이 한번에 생성하고 실행
- Docker Swarm : Docker Contatiner들로 이루어진 클러스터를 관리할 수 있도록해주는 서비스 (Clustering Tool)
1. Information Technology/6. Cloud
댓글