IAM 대시보드
유저관리 대시보드임 , 서버나 뭐든 당연히 루트 계정으로 파일을 만지는 것은 좋지 않음 따라서 IAM 대시보드를 통해 사용자 계정의 그룹을 나누고 권한을 부여하여 작업하는 것이 이상적
VPC
:virtual private cloud
가상 네트워크 lan 환경 → 가용 공간으로써 vpc 안에 여러개의 네트워크(zone)를 구축할 수 있음
다중화를 지원한다는 얘기임
인터넷 게이트웨이
: vpc 와 인터넷을 연결해주는 가상 게이트웨이 일반 게이트웨이와 nat 게이트웨이로 나뉘며 nat gateway 는 요금제가 있음
라우팅 테이블
외부와 통신하기 위해서는 라우팅 테이블이 필요함 aws 에도 당연히 라우팅 테이블이 존재
외부 접근 제한
당연히 외부에서 모든 리소스에 접근할 수 있으면 안됨, 이는 점프 서버 , group security , acl로 해결 가능
Group security
리소스에 적용하는 ACL 이라고 생각하면 편함 → ACL 처럼 포트 번호와 ip 로 구성되어 차단
A 리소스에는 정책을 걸고 B 리소스에는 정책을 안거는게 가능하다는 뜻임
ACL
네트워크 acl 과 같음 네트워크 단에서 적용되기 때문에 그룹 보안과 다르게 한번 적용하면 모든 리소스에 적용됨
점프 서버
위 두 접근 제한 정책으론 모두 관리하기도 어렵고 누락될 수도 있기에 하나의 안전 장치를 더 둠 바로 점프서버임 점프 서버는 실제 리소스로 들어가기 전의 경유지임 아마존 EC2를 이용하여 구축함
EC2
EC2란?
EC2 는 가상 서버로 OS 등등을 선택해서 구축할 수 있다. (인프라 구축의 정석) cpu, 메모리, 디스크 등이 제공되어 OS만 선택하면 되고 유연한 클라우드 호스팅 서비스이다
EC2 는 클라우드에서 컴퓨팅 파워의 규모를 자유자재로 변경할 수 있는 웹 서비스이다. 개발자가 웹 규모의 컴퓨팅 작업이 수월하도록 설계되었다.
EC2 용도
컴퓨팅을 수행할 수 있다. 웹 서비스를 통해 간편하게 필요한 용량을 얻고 구성할 수 있다. 컴퓨팅 리소스에 대한 포괄적이 제어권을 제공하고 새로운 서버 인스턴스를 획득하고 부팅하는데 시간이 단축되기에 신속한 용량 확장 축소가 가능하다. 실제 사용한 용량 만큼만 지불함으로 비용 절감이 된다.
웹 호스팅, 애플리케이션, 데이터베이스, 인증 서비스를 비롯한 서버가 수행하는 모든 워크로드를 지원
특징
Auto scaling을 통한 사용량에 따라 인스턴스 조절 기능
완전 제어 : 루트 액세스 및 상호 작용 기능을 포함한 완전 제어 기능
보안 : 사용자 컴퓨팅 리소스에 보안성 및 강력한 네트워킹 기능을 제공
안정성 : 어떠한 리전에 대해서도 높은 가용성을 보장
Auto scaling : 클라우드의 핵심 기술 cpu, 메모리, eltmzm, 네트워크 트래픽과 같은 시스템 자원들의 메트릭 값을 모니터링하여 서버 사이즈를 자동으로 조절함 → 최적화된 사용량으로 비용 절감
AMI
EC2 인스턴스를 시작하는데 필요한 정보를 제공하는 이미지(미들웨어와 OS가 구축돼 있음), 하나의 AMI로 여러 인스턴스를 생성할 수 있다. AWS 에서는 linux/windows 를 제공하고 있음. 다양한 이미지가 존재하지만 대부분 유료
인스턴스 : 일반적으로 실행 중인 임의의 프로세스, 클래스의 현재 생성된 오브젝트 // 클래스의 구조로 컴퓨터 저장공간에 할당된 실체
인스턴스 유형
범용 , 컴퓨팅 최적화,메모리 최적화, 엑셀러레이티드 컴퓨팅 , 스토리지 최적화 등이 있음
번외 : AWS의 어떤 리소스든 접속에 다양한 방법이 사용되고 이 중 하나인 SSH를 통해 접속할 시 키 페어(공개키&개인키)가 필요함
웹 서버 구축 (당연히 EC2 로 구축함)
LAMP 스택
웹 서버 빌드에 필요한 4가지 소프트웨어 : linux , apache, mysql, php(perl, python 으로 대체가능)
많은 트래픽을 처리하는 대규모 웹 사이트에 적합
MEAN 스택
mongDB, express.js, node.js, angular.js → lamp 의 대안
프론트엔드에서 많은 로직 처리가 필요한 웹 사이트에 적합
만약 점프 서버를 구성했을 시 점프 서버는 인터넷과 직접 연결되고 웹 서버는 로드 밸런서를 통해 간접 연결된다.
로드 밸런서 ELB (elastic load balancer)
scale out
: 접속된 서버의 수를 늘려 처리 능력을 향상 시키는 방법, 서버 가상화를 통해서 하나의 케이스에서도 사용 가능함 → 메일 서버, 게시판, 검색 엔진 등등 더이터의 정합성 유지가 어렵지 않은 경우에 적절함
설정한다고 해서 바로 클라이언트 단위에서 실행되는 것은 아님 → 이를 위해 로드 밸런서가 필요함
scale up (분산 처리 시스템은 아님)
: 서버 그 자체를 증강하는 것으로 처리 능력을 향상 시키는 것 , SMP(대칭형 멀티 프로세서)에 대해서 프로세서를 추가하는 것이나 프로세서 그 자체를 고성능 모델로 옮겨놓는 것을 가리킴
갱신 과정이 많아 정합성 유지가 어려운 데이터베이스 같은 곳에서 필요함 OLTP(온라인 트랜잭션 처리)에 적합함 하지만 인스턴스를 업데이트 하는 중에는 서비스를 할 수 없게된다.
로드 밸런서 역할
- 요청분산 : 요청 패킷을 균등하게 웹 서버에 분산하는 것
- ssl 처리 : https 웹 보안 → 웹 서버가 처리하는 것보다 빠르게 처리함
- 부정 요청 대응 : 부정 접근 즉 취약점 공격을 웹 서버 단에서 대응 하는 것이 아닌 로드 밸런서에서 대응하여 웹 서버의 부하를 줄이고 효율적으로 처리할 수 있다
ELB 종류
- Application load balancer (ALB layer 7) : SSL 처리를 수행하고 url 패턴에 따른 분산 대상지 교체 등의 고급 기능 수행 → 가장 보편적임 ‘로드 밸런서’ 라고 하면 ALB를 통용함
- Network load balancer : 다양한 프로토콜에 대한 기본적인 분산 서비스를 제공, 게임 구현 등에서 이용되는 소켓 통신 분산에 이용됨
- Classic load balancer (layer 4) : 아주 예전의 로드 밸런서 이제는 더 이상 사용 안함
로드 밸런서 용어
- 상태확인 : 대상그룹에 원하는 경로와 포트를 설정 → HTTP 응답이 정상적으로 작동하는지 확인함 만약 비정상적인 상황일때 정상적인 다른 인스턴스로 트래픽을 분산함
- 대상그룹 : Auto scaling 을 위한 단위로 각각의 대상 그룹에 있는 인스턴스들은 정의된 상태검사를 수행함
- 리스너와 룰: 리스너를 포트와 프로토콜별로 분기처리가 가능함
리스너 : 클라이언트의 요청을 처리하는 기능
RDS 관계형 데이터베이스 서비스
mysql, oracle, sql server, postgresql, mariadb, aurora 의 총 6가지 데이터베이스 엔진을 지원하며 관계형 데이터베이스의 설치, 운영, 관리를 지원하는 서비스
기본, 메모리 최적화, 마이크로 총 3가지로 크기가 나뉘고 그룹마다 특성에 맞게 성능 수준이 설정되어 있음
Multi-AZ 다중 가용영역 설정을 통해서 미리 복제된 데이터베이스를 자동으로 사용해서 복구시킬 수 있음
관계형 데이터베이스
참조 관계의 여러 테이블로 데이터베이스를 관리하는 데이터베이스
RDS 구조
- 데이터베이스 엔진 : 실제로 데이터가 저장되는 데이터베이스 본체
- 파라미터 그룹 : 데이터베이스에서 사용하는 언어와 튜닝(?)을 설정할 수 있다 → 성능 개선, 사용 현황 파악, 기능 추가 수행
- 옵션 그룹 : RDS 고유의 설정을 수행 → AWS 에서의 데이터베이스 모니터링에 관한 설정을 수행 한다
- 서브넷 그룹 : Multi-AZ에 관한 내용으로 여러개의 가용 영역에 분산 배치할때 이용되는 설정
비용
인스턴스 크기, 데이터 스토리지 ,멀티 가용영역, 데이터 전송에 따라 달라짐 심지어 데이터베이스 엔진마다 다른 요금을 책정함, 고용량 데이터베이스를 운영할 경우 요금이 상당히 높게 측정될 수 있어 조심해야함
EC2 VS RDS
EC2에 데이터베이스를 구축하는 것이 효율적인지 RDS를 따로 구축하는 것이 효율적인지 알아봐야 한다.
AWS 지불 비용만 봤을땐 EC2가 더 저렴하지만 RDS는 그러나 최적화, 관리, 업데이트 운용을 직접 해주어 사고 대응이 간편하고 데이터 복구가 간편하기 때문에 이점이 더 많다 → RDS는 사용자가 데이터만 관리하면 된다.
기업의 상황에 맞게 사용해야함
S3 (Simple Storage Service)
데이터 스토리지(보조 기억 장치)
데이터를 오랫동안 저장하는 것을 목적으로 제공되는 저장 장소
ex) ssd, hdd,usb,dvd drive → 하드웨어 스토리지 // dropbox, onedrive, icloud → 온라인 스토리지
EBS 스토리지 단점
EC2 인스턴스의 OS 자체로 관리 해야함
장애 발생 시에 대한 대응 준비를 해야함
EC2 인스턴스를 사용하지 못할 가능성 존재
비용
사용한 데이터 용량에 따라서 돈이 나가는데 송수신은 무료다. 다른 리전과의 송수신은 무료가 아니다.
AWS 에서는 EBS(Elastic block store)로 제공하고 있음 → 그러나 단점이 많음 → 이를 해결하기 위한게 S3
접근 방식
인터넷에서의 직접 접근, vpc(버킷에 대한 접근 권한 필요)로부터 접근
버킷
최상위 디렉토리의 느낌 버킷 안에 폴더와 객체가 저장됨
Route 53
AWS 의 DNS 기능 : DNS 기능과 도메인 이름 등록을 지원
도메인 생성 후 도메인 대행 업체(AWS)에 등록 요청
Cloudfront (CDN: Content Delivery Network)
CDN
AWS의 CDN 서비스 : 지리적 제약 없이 전 세계 사용자에게 빠르고 안전하게 콘텐츠를 전송하는 기술 서버와 사용자 사이의 물리적인 거리를 줄여 콘텐츠 로딩에 소용되는 시간을 최소화함
각 지역에 캐시 서버를 분산 배치해, 근접한 사용자의 요청에 원본 서버가 아닌 캐시 서버가 콘텐츠를 전달함
동영상 스트리밍이나 온라인 게이밍, 대용량 파일 전송, 쇼핑몰 등등에서 사용 가능함 그러나 특정 국가나 지역에서만 호스팅하는 서비스에 CDN을 이용하면 성능 저하를 일으킬 수 있음
Cloudfront
origin server→ EC2,S3 같은 본 서버 // Edge Server → 지역별 cache 서버
캐시 서버에 데이터가 존재할 시 캐시 서버의 데이터로 응답, 없을 시 본 서버로 요청 포워딩
캐시는 서버에 24시간동안 저장됨
'네트워크 > 클라우드 컴퓨팅' 카테고리의 다른 글
AWS 로드 밸런서 기초 설정 (1) | 2023.01.13 |
---|---|
AWS EFS (0) | 2023.01.10 |
AWS 피어링 설정 (1) | 2023.01.10 |
CDN 컨텐츠 전송 네트워크 (1) | 2023.01.03 |
클라우드 컴퓨팅 기초 이론 정리 (0) | 2023.01.01 |