도슐랭스타
AWS - 클라우드 서비스, 기술, 기타 용어 본문
클라우드 서비스
클라우드(IaaS/PaaS) 제공 대표 서비스
- 가상서버
- CPU, 메모리, 스토리지 같은 하드웨어 자원을 소프트웨어로 논리적으로 나누어 사용
- 가상 CPU의 성능과 메모리 용량을 사용 용도와 시스템 규모에 맞게 선택
- 로드 밸런서
- 가상 서버를 이중화하거나 부하 분산
- 오토스케일링
- 접속량 및 통신량에 따라 가상 서버의 개수를 자동으로 늘리거나 줄임
- 스토리지
- 데이터, 콘텐츠 아카이브(보관), 백업(보호), 파일 서버의 사용, 시스템의 재해 대책(Disaster Recovery) 등 다양한 용도로 사용
가상서버
- 클라우드 서비스를 구성하는 가장 기본 요소 → 시간 단위로 과금
- 하드웨어 리소스를 논리적으로 구성
- 물리 서버 한 대의 리소스를 여러 개의 가상 서버로 나누거나 다수의 물리 서버의 리소스를 한 대의 가상 서버로 통합해서 사용
- 가상서버는 하드웨어를 에뮬레이션하기 때문에, 가상화하지 않은 서버(베어메탈 서버)에 비해 성능이 떨어짐
베어메탈(Bare Metal) 서버
- 가상화 방식과 다르게 하드웨어의 모든 성능을 사용할 수 있는 서버
- 하나의 물리적 하드웨어에 하나의 서버가 설치됨
- 높은 성능이 필요한 경우 사용
로드밸런서(Load Balancer)
- 시스템의 이중화 및 분산 처리 지원
- 리전(Region): 지리적으로 떨어진 독립된 지역 (예: 서울, 도쿄, 미국 등)
- 존(Zone): 같은 지역 내의 독립적인(빌딩 등 물리적으로 격리된) 지역
- L4 & L7 로드밸런서
- L4: 전송계층(Transport Layer)에서 동작, IP/Port 기반으로 트래픽 분산
- L7: 응용계층(Application Layer)에서 동작, 웹 애플리케이션에 따라 트래픽 분산
- 알고리즘
- 라운드 로빈: 트래픽을 순서대로 배분
- 가중 라운드 로빈: 각 서버에 가중치를 부여하여 가중치 높은 서버에 우선 배분
- 최소 연결: 현재 연결되어 있는 클라이언트 수가 적은 순으로 배분
- 최소 응답시간: 가장 빠른 응답시간을 가진 서버에 배분
- 최소 부하: 서버들의 현재 부하 상태를 고려해 가장 적은 부하를 가진 서버에 배분
오토스케일링(Auto Scaling)
- 부하에 따라 컴퓨팅 자원(CPU, 메모리, 네트워크 등)을 유연하게 증감시키는 기능
- 시시각각 변하는 부하에 즉각 대응 및 효율적 운영
- 서비스 성능 및 가용성 보장
- 초기 구축 시 서버 사양을 적게 시작하여 비용 절감
- 동작 방식
- 스케일 업/다운: 서버의 CPU, 메모리 등을 업그레이드, 다운그레이드하는 방식(예: DB)
- 스케일 인/아웃: 동일 규격 서버의 수량을 증감하여 부하 분산하는 방식
백업(스냅샷)
- 정기적 백업 수행
- 수동 혹은 사용자 설정 시간(매주, 매월 등)에 자동으로 백업 수행
- 재해 대책(Disaster Recovery, DR)
- 천재지변, 테러 등으로 서비스 중단 시 데이터를 보존하고 자동 복구하는 대책
- 재해 복구 수준에 따라
- 미러 사이트(즉시), 핫 사이트(24시간 이내 복구), 웜 사이트(일/주), 콜드 사이트(주/달)
- 비즈니스 연속성 계획(BCP)
- 자연 재해, 테러 등으로 자산이 손상되더라도 피해를 최소화하고, 사업 활동을 재개할 수 있는 수단과 방법을 계획
- 서버 및 데이터베이스 스냅샷을 백업 사이트에 저장하여 복구 시 활용
스토리지 서비스
- 데이터 아카이브(보관) 및 백업(보호), 파일 서버, 재해 대책(DR) 등의 용도로 사용
- 빅데이터 분석을 위한 데이터 공유 및 저장 용도로 많이 사용
- AWS의 대표적인 클라우드 스토리지 서비스
- Amazon S3: 데이터를 파일 단위로 저장/검색/삭제, 뛰어난 견고성 및 내구성을 보장하여 데이터의 영구적인 저장에 적합
- Amazon S3 Glacier: 빈번하게 읽을 필요가 없는 장기 보존용 데이터
- EBS(Amazon Elastic Store): 엄격한 응답이 요구되는 DB 용도
- EFS(Amazon Elastic System): 기업의 파일 서버로 사용
네트워크 서비스
- VPC(Virtual Private Cloud): 가상 네트워크를 만들어, 개인 클라우드처럼 사용할 수 있는 서비스
- 임의의 사설 IP 주소 설정
- 서브넷에 가상 서버(인스턴스) 배치
- 네트워크 관련 보안 기능 제공
- 통신 사업자의 VPN 망 직접 연결
- VPN 게이트웨이와 IPsec 암호화 통신
- 필터링을 통한 통신 차단(방화벽 기능)
- 보안 그룹 정책
데이터베이스 서비스(AWS)
- Amazon RDS: 관계형 데이터베이스 서비스, MySQL, PostgreSQL, Oracle Database, Microsoft SQL Server, Aurora, MariaDB 등 지원
- Amazon DynamoDB: NoSQL 서비스, 비관계형, 빠르고 가용성이 높음
- Amazon Redshift: 데이터웨어하우스 서비스, 분석용 데이터 처리에 특화
- Amazon ElasticCache: 인 메모리 캐시 서비스, 데이터베이스 쿼리 결과를 캐싱하여 웹 시스템의 고속화를 실현
클라우드 이전
- 리프트 앤 시프트 (Lift and Shift)
- 온프레미스 시스템을 변경하지 않고 그대로 클라우드로 이동(Lift)한 후, 최적화(Shift)를 수시로 진행하는 전략.
- VMware 활용이 일반적이며, 클라우드 사업자는 호환 서비스를 제공.
- 예: VMware Cloud on AWS, VMware on IBM Cloud
클라우드 기타 서비스(예시)
- 데이터 분석 서비스 (Google Cloud Platform)
- BigQuery: 대용량 데이터 분석
- Cloud Data flow: 실시간 데이터 취득 및 분석
- Cloud Dataprep: 데이터 가공
- IoT 서비스 (AWS)
- AWS IoT SiteWise: 수집
- Amazon Timestream: 시계열 데이터베이스
- AWS IoT Events: 모니터링
- AI/기계학습 서비스
- 라이브러리를 이용한 기계학습 및 미리 학습된 모델 제공
클라우드 시스템 구축
- 표준화된 클라우드 서비스를 조합하여 시스템 구축
- 클라우드를 이용한 대표적인 사고방식
- 로드 밸런서 및 오토 스케일링으로 확장성 제공
- 멀티 존으로 장애 대비
- 자동 복구 및 백업 구성
- API 연계를 통한 다른 서비스와의 통합
클라우드 관리 플랫폼 (CMP)
- 필요성
- 서버 이용 증가 및 여러 클라우드 서비스 사용
- 서버 환경 자동화 및 통합 관리
- 주요 관리 기능
- 구성 관리, 성능 관리, 운영 관리, 멀티 클라우드 관리, 사용자 관리
- 주요 도구: VMware, IBM Cloud Orchestrator, Flexera, datadog 등
가상화 기술
- 가상화: 하드웨어 리소스를 논리적으로 다루는 기술 (서버, 네트워크, 스토리지)
- 장점:
- 물리 서버 수를 줄여 비용 절감 및 공간 절약
- 장애 격리 가능
- 하드웨어 구성:
- 하이퍼바이저 형과 컨테이너 형 비교
컨테이너 기술
- 애플리케이션을 독립적인 실행 환경(컨테이너)으로 분리하여 실행
- 장점:
- 빠른 기동 및 정지, 적은 리소스 사용
- 클라우드 간 복제 및 이식성 우수
- 대표 제품: Docker, Kubernetes
하이퍼바이저 형 vs. 컨테이너 형
하이퍼바이저 형 (Virtual Machine)
- 구성
- 하드웨어 → 하이퍼바이저 → 게스트 OS → 애플리케이션
- 장점
- 각 가상 서버에 독립적인 OS 선택 가능
- 가상 서버들 간 완전한 분리
- 하나의 가상 서버가 공격받아도 다른 가상 서버는 안전
- 단점
- 각 가상 서버에 OS가 필요해 리소스(CPU, 메모리, 스토리지)가 많이 소모
- 가상 서버 부팅 시간이 길어짐
- 대표 제품
- VMware vSphere, Xen Server, Hyper-V
컨테이너 형 (Container)
- 구성
- 하드웨어 → 호스트 OS → 컨테이너 관리 소프트웨어 → 실행환경 → 애플리케이션
- 장점
- 컨테이너 간 복사 및 마이그레이션 용이
- 별도의 OS가 필요 없어 리소스 소모 적고 부팅 빠름
- 단점
- 호스트 OS와 커널을 공유하기 때문에 한 컨테이너가 공격받으면 다른 컨테이너도 위험
- Linux 커널에서만 동작하며, Windows 컨테이너는 지원 안 됨
- 대표 제품
- Docker
스토리지 기술
블록 스토리지
- 일정 크기의 블록으로 나뉜 논리 볼륨에 액세스
- 서버, 스토리지 간 데이터 전송이 빠름
- 데이터베이스에 적합하며 레이턴시가 중요한 경우 사용
파일 스토리지
- 파일을 그대로 읽고 쓰며 공유 가능
- SMB, NFS, NAS 등에서 사용
오브젝트(객체) 스토리지
- 데이터를 객체 단위로 처리
- 각 객체에 고유한 ID(URI) 부여
- 대규모 비정형 데이터에 접근할 때 사용 (예: 클라우드 스토리지)
- HTTP 기반의 REST API를 통해 액세스 (POST, GET, PUT, DELETE 등)
네트워크 가상화 기술
- VLAN: 물리적 네트워크를 논리적으로 분할
- VPN: 가상 전용선 연결
- NFV: 네트워크 기능을 소프트웨어로 구현
SDN (Software Defined Networking)
- 네트워크 구성과 기능 설정을 소프트웨어로 정의
- 장점:
- 데이터 전송 경로를 유연하게 변경 가능
- 구성: 데이터 플레인(전송부)과 컨트롤 플레인(제어부) 분리
데이터베이스 기술
- RDB(Relational Database): 행과 열 형식으로 관계형 데이터 저장 (Oracle, MySQL, PostgreSQL)
- NoSQL(Not only SQL): 비관계형 데이터베이스, 대량 데이터 처리 (MongoDB, Cassandra 등)
- 종류: 문서 지향, 키-밸류, 그래프, 컬럼 지향
분산 처리 기술
- 클러스터링: 여러 서버를 결합하여 하나의 시스템처럼 동작
- Apache Hadoop: 대량의 데이터를 분산 처리
- Apache Spark: 메모리 기반 대용량 데이터 병렬 처리
엣지 컴퓨팅 (Edge Computing)
- 데이터를 말단 디바이스 근처에서 분산 처리하여 실시간 데이터 처리 및 높은 신뢰성 제공
- 서버 분산 처리
- 서버를 말단 디바이스에 가까운 영역에 분산 배치하여 데이터를 처리
- 클라우드 컴퓨팅은 서버를 한곳에 모아 집중 처리하지만, 엣지 컴퓨팅은 말단에서 분산 처리
- 디지털 데이터 증가
- 디지털 데이터의 폭발적 증가와 낮은 지연(실시간)이 요구되는 애플리케이션 증가
- 실시간 데이터 처리와 높은 신뢰성 보장
- 디바이스 발전
- 디바이스 고도화, 소형화, 저전력화, 비용 절감에 따른 엣지 컴퓨팅 보급 가속화
- CPU/GPU 탑재된 엣지 컴퓨팅 디바이스 등장
- 클라우드 처리 시 문제점
- 통신 데이터 증가에 따른 네트워크 대역폭 소모
- 회선 이용료 등의 비용 증가
- 클라우드 서버와 거리가 멀 경우 응답 시간이 지연
- 네트워크 장애로 데이터 처리 불가한 경우 발생
- 보안 정책이나 국가 및 지역의 사정에 따라 클라우드로 데이터 전송 불가할 수 있음
하이퍼 컨버지드 인프라스트럭처
- 컨버지드 인프라: 서버, 네트워크, 스토리지를 하나의 패키지로 제공
- 하이퍼 컨버지드 인프라: 클라우드 서비스의 기본 기능을 통합 제공
GPU (Graphics Processing Unit)
- 대량의 연산 처리가 필요한 컴퓨터 그래픽과 딥러닝에 사용
- GPGPU(General Purpose Computing on GPU): GPU에서 CPU 기능을 추가하여 연산 속도 향상
서버리스 아키텍처
- 서버의 운영과 관리를 클라우드 사업자가 처리하고 사용자는 서버를 의식하지 않음
- FaaS: 함수 단위로 서버리스 서버에 업로드하여 이벤트 기반 실행
- BaaS: 백엔드 기능을 API로 제공, 클라우드 사업자가 백엔드 개발 환경을 제공
마이크로 서비스 아키텍처 (MSA)
- 기존 시스템의 한계: 서비스의 확장성 및 배포가 어려움
- 장점:
- 개별 서비스 배포 가능, 확장성 향상, 부분 장애 해결
- 단점: API 호출 시 통신 비용 및 레이턴시 증가
기타용어
- CSP (Cloud Service Provider): 클라우드 인프라 제공
- MSP (Managed Service Provider): 클라우드 도입에 필요한 컨설팅, 아키텍처 구축 등 지원
프로비저닝
- IT 자원을 사용할 수 있도록 준비하는 과정
- 서버, OS, 소프트웨어, 스토리지, 계정 프로비저닝
탄력적 컴퓨팅 (Elastic Computing)
- Elastic Computing (예: AWS EC2)
- 피크 사용에 대한 용량 계획 및 엔지니어링 걱정 없이 변화하는 요구사항을 충족하도록 컴퓨터 자원을 신속히 확장/축소하는 기능
- 시스템 모니터링 도구로 제어
- 진행 중인 작업을 중단시키지 않고 실제로 필요한 리소스 양에 따라 자동 조절
→ 불필요한 속도 저하, 서비스 중단을 피함 - 사용하지 않는 용량이나 유휴 리소스에 대한 비용 절감
데브옵스 (DevOps)
- 목표: 개발/운영의 협업으로 빠른 소프트웨어 릴리즈 및 서비스 제공, 이슈 해결 등
- 소프트웨어 개발(Dev)과 운영(Ops)을 연계하는 방법론, 개발팀과 운영팀의 협업 강조
데브옵스 실천법
- 지속적인 통합(CI)
- 개발자들이 자주(하루 한번 이상) 코드를 공유 리포지토리에 병합하는 프로세스
- 코드 변경 사항의 충돌을 최소화하고 문제를 빠르게 발견, 해결
- 지속적인 배포(CD)
- 개발된 소프트웨어를 자동으로 프로덕션 환경으로 배포하는 프로세스
- 신규 버전의 애플리케이션을 사용자에게 빠르게 제공
- 자동화
- 테스트, 배포, 모니터링 등 반복적인 작업을 자동화하여 시간 절약 및 오류 줄임
- 협업과 공유
- 개발자와 운영팀 간의 긴밀한 협업과 서로의 작업에 대해 이해
- 전체 소프트웨어 개발, 배포 프로세스 개선
클라우드 네이티브 (Cloud Native)
- 클라우드 환경에서 가장 효과적으로 동작하는 애플리케이션 개발 및 운영 방식
- 애플리케이션을 하나의 큰 Monolith가 아닌 여러 개의 독립적인 마이크로서비스로 분할하여 개발
- 각각의 서비스는 독립적으로 개발, 테스트, 배포, 확장 가능
- 애플리케이션을 컨테이너로 패키징하여 어떤 클라우드 환경에서도 동일하게 실행 가능
주요 기술
- 마이크로서비스 아키텍처(MSA)
- 컨테이너 기술
- 데브옵스(DevOps)
- 지속적인 통합과 지속적인 배포(CI/CD) 사용
IAM (Identity and Access Management)
- 사용자 관리: 사용자가 누구인지, 어떤 권한을 갖는지, 어떤 리소스에 접근할 수 있는지 관리
인증 요소
- 사용자가 아는 것: ID+PW와 같이 사용자만 알고 있는 것
- 사용자가 갖고 있는 것: 물리적 토큰 (전자 열쇠, USB, 스마트폰 등)
- 사용자 자신: 신체 속성 (지문, 망막 등)
- 클라우드 환경에서 사용자의 액세스 관리는 네트워크 경계가 아닌 ID가 중요
- 액세스 관리는 시스템 내 사용자마다 각각의 권한을 부여하고 관리
반응형
'AWS' 카테고리의 다른 글
AWS - 권한관리 시스템 (2) | 2024.11.11 |
---|---|
AWS - 클라우드 스토리지 (0) | 2024.11.04 |
AWS - 클라우드 기술의 이해 (6) | 2024.10.28 |
AWS - 클라우드 기초 (1) | 2024.10.14 |
Comments