21년 11월 8일 ~ 9일 양일간 온/오프라인으로 진행된 AWS Cloud Practitioner Essential 교육 과정에 참여 후 정리한 내용입니다.
평소 EC2 인스턴스를 만들거나 클라우드 서비스를 사용할 때 명확한 이해 없이 사용하게 되는 상황이 답답하던 찰나에 좋은 교육을 들을 기회가 있어 참여하게 되었습니다. 교육을 들으면서 궁금하고 관심 있는 부분이 있어 추후에 더 공부하고 자세한 내용을 포스팅하려 합니다 :)
가변비용
비용 최적화 (데이터 센터 직접 운영하지 않기 때문)
관리적인 비용을 줄일수있는 여러 요소들 존재
용량 : 서버 성능 바로 업그레이드, 다운그레이드 가능 (인프라 구현 시 용량 추정 필요 없음)
규모의경제
속도 및 민첩성 : 몇 분 만에 전 세계에 배포
우분투 등 라이센스 비용 없는 os : 초단위로 계산
윈도우 등 라이센스 비용 있는 os : 시간단위로 계산
AWS 사용시 미리 용량을 확보할 필요가 없음 → 필요에 따른 즉각적인 공급 조정(인스턴스 추가, 제거)
처리해야되는 작업에 대한 균형을 맞춰줌
워크로드의 크기는 동일하게 유지, 자동으로 트레픽 분산시켜줌
Auto Scaling 그룹에 단일 접점 제공
(인스턴스 추가시 할당되는 IP 주소를 다 DNS 설정해야함 → load balancers DNS name 으로 접근하면 해결가능. load balancers 주소를 DNS 서버에 등록시켜놓으면 됨. 추가된 인스턴스 알아서 인식→ 트레픽 분산시켜줌,어떤 ip 주소가 할당되는지 신경안써도 됨.)
클라우드 워치 : 모니터링 서비스
내가 소유하고 내가 관리해야하는 서버가 없음 (AWS 가 대신 관리해줌)
서비스가 커질수록 컨테이너의 수도 늘어나 관리가 불편해짐.
오케스트레이션 서비스 : 컨테이너 기술 관리 자동화
ex) kubernetes , ECS(AWS 자체 컨텐츠), EKS (kubernetes이용한 AWS서비스)
컨테이너는 대응 속도 빠름, 갑자기 컨테이너가 많이 만들어져야하는경우 지연 생김, fargate는 이런 문제 해결. aws 가 대신 관리.
데이터 거버넌스 및 법적 요구 사항 준수 → 고객과의 근접성(네트워크상 느려지지 않는 범위내에서)→ 리전 내에서 사용 가능한 서비스 → 요금(리전마다 요금 상이) 등을 고려.
가용영역을 고려하지 않아도 되는 서비스가 있음 ex) S3 가용영역을 고려하는 서비스 ex) EC2
가용영역 별로 거리가 있음, 리전간에 가용역역을 여러개 만들어 놓음 : 서비스의 안정성을 위해
엣지 로케이션
AWS 인프라 및 서비스를 온프레미스 데이터 센터로 확장
서비스 사용시 물리적 서버가 회사 데이터 센터에 설치됨.
API 호출로 AWS 서비스 요청하는 것
먼저 AWS Management console : 제한이 있음
AWS CLI(client line interface)
Network VPC
Subnet
고객이 접근하는 서버(웹 서버)와 아닌 서버(내부의 어플리케이션 서버, DB 서버)가 분리되어야 함. ⇒ VPC
VPC 안에 subnet 만들어야함. - 실제 네트워크
→ public, private subnet 자체가 필요한지(어떤 종류의 네트워크가 필요한지, 트래픽이 제어 기능이 필요한지) 부터 판단하여 생성.
VPC 만들고 → subnet 생성 → public/private 유형 선택 (언제든 변경 가능)
라우팅 테이블 게이트웨이 등록되어 있으면 public subnet (고객대응 지원 웹사이트 지원, 대중이 엑세스 할 수 있어야 하는 리소스가 포함되어있음)
라우팅 테이블을 수정(게이트웨이 정보 등록)하는 방식으로 관리.
이름으로는 public-private 구분할 수 없음. 라우팅 테이블 확인해야.
igw : 게이트웨이 public.
임시로 public → private 바꿀 수는 있음. (일반적 방법은 아님, NAT 지정해주기)
VPN 연결 (인터넷 게이트웨이가 vpn 환경 지원 x → 가상 프라이빗 게이트웨이 따로 붙여야함)
하이브리드 컴퓨팅 구성시 vpn 영향력 낮아짐. 온프레미스 데이터 센터와 vpc 간 전용 연결 설정
로드밸랜서는 디도스 공격에 대한 대응능력도 높음.
→ 퍼블릭으로 하는것보다 로드밸랜서 이용해서 프라이빗으로 만드는게 보안성을 위해 좋음
상태 비저장 패킷 필터링을 수행
아웃바운드 규칙을 기준으로 심사 (양방향, 번거로움)
인스턴스에 접근하는 트레픽 필터링
보안그룹은 상태 저장 패킷 필터링 수행 (들어오는 패킷에 대해 내린 이전 결정 기억)
기본 설정 : 아웃바운드 트래픽 허용 + 인바운드 트래픽
DNS 할당이 되더라도 매우 복잡함. (IPv4)
Amazon Route53 : 아마존에서 제공하는 DNS 도메인 구입/등록 서비스
CloudFrount : 접근하는 위치에 따라 가장 가까운 엣지 로케이션으로 라우팅
ex. 200개 이상의 서버가 있는 경우, 고객과 가장 가까운 걸로 라우팅
별칭 지정 → 라우터53에 등록 : 지정한 도메인으로 고객들 들어오기 가능
인스턴스 스토리지(스토어) : 성능이 월등히 좋음, 휘발성 저장공간
인스턴스가 올라가있는 실제 서버에 장착되어있는 스토리지를 가상화시켜서 바로 쓰는 것.
가상화를 하기 때문에 100%는 아니지만 거의 100% 가까이 스토리지의 성능
하드디스크 or SSD 로 만들어져 있음.
중지시 백업한후 내려오고 재시작하면 원래 서버에 돌아가지 않을 확률이 높아 데이터도 함께 휘발. (따로 비용 없지만 인스턴스 비용에 포함됨)
EBS 볼륨 : 하드웨어를 가상화 시켜서 쓰는 방식이 아닌 스토리지 관리 서비스가 따로 있어서 요청한 만큼 따로 할당됨. 인스턴스와 네트워크로 연결됨. 직접 장착이 아님. 하드웨어 성능을 직접 가져다 쓰는것이 아님.
인스턴스를 만들때 팬딩(보류단계) : 요청한 인스턴스가 올라갈수있는 호스트를 찾는 단계 , 중지시키면 내려오고 시작하면 다시 찾음. 원래 있던 서버에 올라가지 않을 확률이 훨씬 더 큼.
각 객체는 데이터, 메타데이터, 키로 구성
객체 형태로 관리, 동일한 레벨에서 관리가 됨. 파일 사이즈, 업로드 개수 제한 없음.
내구성 좋음, 삭제, 수정 전까지 손상될 가능성 없음.
http https 프로토콜 사용
객체 데이터에 대한 url이 개별적으로 생성됨. url을 가지 모든 사람이 데이터에 접근 가능.
객체를 버킷에 저장
버킷은 이름 중복 안됨. 파일 업로드 하게되면 url 생성됨.
객체에 대한 엑세스를 제어하는 권한을 설정
정책을 이용한 접근제어 등
다양한 사용사례에 맞는 일단의 스토리지 클래스 중에서 선택
스탠다드 (요청비용 더 저렴)
스탠다드-IA (Infrequent Access) (저장비용 더 저렴)
S3 One Zone-IA
Intelligent-Tiering
엑세스 패턴을 알아서 판단하여 스탠다드와 IA를 변경
Glacier 요청 처리비용 굉장히 비쌈. 저장 비용 굉장히 저렴
(ex. cctv )
Glacier Deep archive 기가바이트당 1원 정도
: 트리가 길어질수록 느려짐. 파일 만들수 있는 개수의 제한 있음. = 공유파일 시스템
EBS는 인스턴스 전용의 스토리지임
FSx : 윈도우용 공유파일시스템, 사용하기 까다로움..
관계형 데이터베이스를 꼭 써야하는지 먼저 생각해보기
관계형(SQL) vs 비관계형(noSQL) → 테이블 하나로 처리 가능하다면 비관계형 고려 의미가 있음.
비관계형 : 가격대비 성능 뛰어남
인스턴스를 만들엇 모든것을 다 하면 내 마음대로 할수 있음
RDS를 사용하면 관리작업을 AWS 해줌.
Aurora는 mySQL, postgre보다 성능이 월등, 라이센스 비용 없게 하고 싶어서 AWS에서 개발
: 간편하게 이용 가능
서버리스 : 내가 관리하는 서버가 없음
많은 부분을 마이그레이션 해줌
AWS가 관리하는 영역이 있고 고객이 해야하는 영역이 구분되어 있음
→ AWS가 소유하고 있기 때문에 마음만 먹으면 접근하지 못하는 것이 없다.
⇒ 기능 및 정책의 설정은 고객이, 기능, 정책의 관리와 보안은 AWS가 관리해줌
요청이 들어오면, identity 확인 및 권한 관리 후 요청 처리
행동할수있는 범위 지정
이메일로 로그인시 계정 : root → 계정 이용하지 마세요 (권한 제어가 안되기 때문, 여러명 공유 x)
계정 생성 직후 IAM 사용자를 만들기
적절하고 필요한 권한 주기
루트는 곧바로 로그아웃 후 사용자로 작업하기
특정 작업에 맞는 권한을 가진 사용자를 생성 (IAM 정책 문서, json 형태, 만들기 어려움. )
= 최소권한 원칙
익숙치 않을때는 사용자를 만들고 admin 권한을 주고 그걸로 사용
계정 관리를 잘해도 문제가 생길 수 있음.
Organizatons을 활용해서 여러 AWS 계정을 통합 관리 해줌
: 루트 계정들의 권한을 통합 관리할 수 있음.
AWS 인증 받은 부분은 중복 인증 하지 않아도 됨
규정 준수 서비스 Web Applicaton File, 웹 어플리케이션 방화벽은 웹 서비스와 주고 받는 HTTP 트래픽을 필터링, 모니터링 및 차단하는 특정 형태의 애플리케이션 방화벽
제품 및 서비스에 대한 지능형 위협 탐지 기능
비즈니스 역량 + 기술 역량