https://www.miricanvas.com/v/133jbua
필자는 배재대학교 21학번 4학년 소프트웨어학부 정보보안학과 학부생이다.
시험공부 정리할 겸 포스팅을 하고자 한다.
서비스 기반 아키텍쳐(SOA, Service-Oriented Architecture)
소프트웨어 시스템을 독립적이고 상호운용 가능한 서비스의 집합으로 구성하는 아키텍처 스타일
서비스 지향: 애플리케이션의 기능을 독립적인 서비스로 정의하고 이들 서비스를 조합하여 애플리케이션을 구축
느슨한 결합: 서비스 간 결합도를 최소화하여 유연성과 재사용성을 높임 서비스는 서로 독립적으로 변경 및 교체될 수 있음
표준 기반: 서비스 간 상호운용성을 위해 표준 프로토콜을 사용함
비즈니스 중심: 비즈니스 프로세스와 IT 시스템 간 긴밀한 연계를 지원함
재사용성: 서비스를 재사용하여 개발 비용과 시간을 절감할 수 있음
SOA의 주요 구성요소로는 서비스 제공자, 서비스 소비자, 레지스트리 등이 있다. 이들 간의 상호작용을 통해 서비스 검색, 바인딩, 실행이 이루어짐
SOA는 IT 인프라의 유연성과 확장성을 높이고, 비즈니스 요구사항에 신속하게 대응할 수 있게 해줌 또한 기존 시스템의 재사용성을 높여 개발 비용과 시간을 절감할 수 있음.
IT 서비스 계층 구조

Self-Contained Module
모듈 내부에서 필요한 모든 기능과 의존성을 포함하고 있는 모듈 다른 모듈과의 결합도가 낮고, 독립적으로 배포 및 테스트가 가능함
1. 모듈 내부에 필요한 모든 기능이 포함되어 있어 외부 의존성이 낮음
2. 모듈 간 결합도가 낮아 모듈을 독립적으로 변경 및 교체할 수 있음
3. 모듈 단위로 배포와 테스트가 가능하여 개발 및 운영 효율성이 높음
4. 모듈화된 아키텍처 구현에 적합하며, 마이크로서비스 아키텍처의 기본 단위가 됨
소프트웨어 시스템의 유연성, 확장성, 유지보수성을 높임
웹 서비스 표준 기술(WSDL, SOAP, UDDI)
WSDL(Web Services Description Language)
웹 서비스의 기능, 인터페이스, 바인딩 정보 등을 기술하는 XML(eXtensible Markup Language)
웹 서비스 제공자가 서비스를 공개하고 서비스 소비자가 서비스를 검색하는데 사용됨
SOAP(Simple Object Access Protocol)
XML 기반의 메시징 프로토콜로 웹 서비스 간 통신을 위해 사용됨
표준화된 메시지 포맷과 메시징 규약을 정의함
UDDI(Universal Description, Discovery and Integration)
웹 서비스 레지스트리 웹 서비스 제공자가 자신의 서비스를 등록하고 서비스 소비자가 서비스를 검색할 수 있게 함
웹 서비스 제공자, 서비스, 바인딩 정보 등을 등록하고 관리함

RPC(Remote Procedure Call)
클라이언트 프로그램이 다른 원격 시스템의 프로시저를 호출할 수 있게 해주는 기술.
클라이언트 프로그램은 마치 로컬 프로시저를 호출하는 것처럼 원격 프로시저를 호출할 수 있음.
이를 통해 클라이언트와 서버 간의 통신이 투명하게 이루어질 수 있음.
RPC 특징
투명성: 클라이언트는 원격 프로시저 호출을 로컬 프로시저 호출과 구분하지 않음. 네트워크 통신이 숨겨져 있음.
독립성: 클라이언트와 서버 간의 통신 방식이 독립적이므로 서로 다른 운영 체제나 프로그래밍 언어를 사용할 수 있음.
프로토콜 추상화: RPC는 통신 프로토콜을 추상화하여 개발자가 직접 다룰 필요가 없게 함
RPC 사례
웹 서비스: SOAP은 RPC 활용
마이크로서비스 아키텍처: 각 마이크로서비스 간 통신에 RPC 활용
클라우드 컴퓨팅: 클라우드 서비스 제공자와 사용자 간 RPC가 사용
RPC 동작 과정 및 순서

SOAP 웹 서비스의 메시지 교환

구성 요소

SOAP Envelop (Header + Body)
SOAP 메시지의 최상위 요소 메시지 시작과 끝을 나타냄
SOAP header
메시지에 대한 추가 정보를 제공
인증, 암호화, 트랜잭션 관리 등의 기능 수행
SOAP Body
실제 메시지의 내용이 포함
메서드 이름, 매개변수, 반환값 등이 들어있음
Fault Element
SOAP 메시지 처리 중 발생한 오류를 나타냄
오류 코드, 오류 메시지, 스택 추적 정보 등을 포함할 수 있음
클라이언트가 오류를 처리할 수 있도록 도와줌
클라우드 서비스
인터넷을 통해 제공되는 On-Demand IT 자원 및 서비스를 말함. 사용자는 필요한 만큼 컴퓨팅 자원, 데이터베이스, 소프트웨어 등을 클라우드 서비스 제공업체로부터 임대해 사용할 수 있음
특징
사용자의 필요에 따라 언제든 IT 자원을 신속하게 확보할 수 있음
대규모 인프라를 공유할 수 있음
클라우드 서비스 제공업체가 인프라 운영과 관리를 담당함
초기 투자 없이 사용한 만큼만 비용을 지불하는 종량제 방식임
IaaS(Infrastructure as a Service)
가상화된 컴퓨팅 자원을 서비스로 제공하는 클라우드 서비스
사용자는 OS, 미틀웨어, 애플리케이션을 직접 관리하고 구축
AWS EC2
PaaS(Platform as a Service)
개발 및 실행을 위한 플랫폼을 서비스로 제공하는 클라우드 서비스
사용자는 애플리케이션만 개발하면 되고, 인프라와 미들웨어는 PaaS 제공업체가 관리
AWS Elastic Beanstalk
SaaS(Software as a Service)
소프트웨어 자체를 서비스로 제공하는 클라우드 서비스
사용자는 웹 브라우저나 모바일 앱을 통해 소프트웨어를 사용
인프라, 미들웨어, 애플리케이션 모두 SaaS 제공업체가 관리

Hypervisor
가상화 기술의 핵심 구성 요소로 물리적인 컴퓨팅 자원을 가상화하여 여러 개의 가상 머신을 실행할 수 있게 해주는 소프트웨어
특징
물리적인 자원을 가상 머신에 분할하여 할당
각 가상 머신은 독립적으로 운영되며 자원 사용을 모니터링하고 관리함
하이퍼바이저는 가상 머신 간의 격리를 보장하여 보안을 유지함
한 가상 머신의 오류나 공격이 다른 가상 머신에 영향을 미치지 않도록 함
하이퍼바이저는 가상 머신을 생성, 실행, 중지, 삭제하는 등의 기능을 제공함
가상 머신의 이동, 복제, 스냅샷 등의 관리 기능을 지워함
종류
VMware ESXi, Microsoft Hyper-V, KVM(Kernel-based Virtual Machine)
Type 1(Native Hypervisor) - Bare-Metal Hypervisor
물리적인 서버 하드웨어 위에 직접 설치
OS 없이 하이퍼바이저가 직접 하드웨어를 제어
가상 머신이 하이퍼바이저 위에서 직접 실행됨
성능이 우수하며, 안정성과 보안성이 높음
VMware ESXi, Microsoft Hyper-V, Citrix XenServer
Type 2(Hosted Hypervisor)
기존 OS 위에 설치된느 하이퍼바이저호스트 OS와 함께 실행되며, 호스트 OS의 자원을 활용가상 머신이 하이퍼바이저 위에서 실행됨설치와 구성이 쉽지만, 성능이 타입 1 하이퍼바이저에 비해 다소 낮음
VMware Workstation, Oracle VirtualBox, Parallels Desktop

OpenAPI(Open Application Programming Interface)
누구나 사용할 수 있도록 공개된 API
Swagger, Postman, Insomnia
Kubernetes
컨테이너 오케스트레이션 플랫폼으로 대규모 컨테이너 기반 애플리케이션을 자동으로 배포, 스케일링 및 관리할 수 있게 해주는 오픈소스 시스템
특징
여러개의 컨테이너로 구성된 애플리케이션을 자동으로 배포, 스케일링, 관리함
컨테이너 생성, 실행, 네트워킹, 스토리지, 로드밸런싱 등 처리
애플리케이션의 수요 변화에 따라 자동으로 컨테이너를 추가/삭제하여 스케일링을 수행함
롤링 업데이트, 블루/그린 배포 등의 방식으로 애플리케이션을 무중단 배포할 수 있음
컨테이너 장애 발생 시 자동으로 북구하여 애플리케이션의 가용성을 보장
마스터 노드 장애에도 클러스터가 지속적으로 작동할 수 있음
On-Premise, 클라우드, 하이브리드 등 다양한 환경에 배포할 수 있음
다양한 OS 및 하드웨어 플랫폼 지원
수천개의 노드로 구성된 대규모 클러스터를 관리할 수 있음
다양한 애플리케이션 워크로드를 실행할 수 있는 유연성을 제공함
클라우드 서비스 공격 유형
- Malware Injection:
- 악성 코드를 클라우드 서비스에 주입하여 데이터 유출, 시스템 장애 등을 유발하는 공격 방식입니다.
- 취약한 클라우드 환경에 악성 프로그램을 삽입하여 서비스와 데이터를 감염시킵니다.
- DDoS (Distributed Denial-of-Service) Attacks:
- 다수의 좀비 시스템을 동원하여 클라우드 서비스에 과도한 트래픽을 유발, 서비스 가용성을 저하시키는 공격입니다.
- 클라우드 리소스를 고갈시켜 정상적인 사용자의 접근을 차단하는 것이 목적입니다.
- Accounts Hijacking:
- 클라우드 사용자 계정의 자격 증명을 탈취하여 불법적으로 접근하는 공격 기법입니다.
- 계정 정보 탈취를 통해 데이터 유출, 서비스 파괴, 기타 악의적인 행위를 수행할 수 있습니다.
- Social Engineering Attacks:
- 사회 공학적 기법을 활용하여 클라우드 사용자를 속이고 정보를 유출하는 공격입니다.
- 사용자의 신뢰를 악용하여 계정 정보, 중요 데이터 등을 탈취할 수 있습니다.
- Insider Threat:
- 클라우드 서비스에 대한 내부자(직원, 협력업체 등)의 악의적인 행동으로 인한 공격입니다.
- 내부자가 권한을 남용하여 데이터를 유출하거나 시스템을 파괴할 수 있습니다
클라우드 서비스 취약점 발생 영역
Migration, 서비스 구성, 서비스 운영 및 관리, 클라우드 컴퓨팅 기술 및 클라우드 서비스
클라우드 공통 보안 서비스와 네트워크 보안 서비스

AWS



AWS Global Infrastructure




EC2











스토리지








VPC













Database







클라우드 인프라스트럭처가 중요한 이유는 보안, 가용성, 성능이라는 세 가지 주요 측면에서 설명할 수 있습니다.
첫째, 보안(Security)입니다. 클라우드 서비스 제공업체는 보안 업데이트와 다양한 보안 인증을 통해 데이터를 안전하게 보호합니다. 데이터 암호화, 방화벽, 침입 탐지 시스템 등을 통해 외부 공격으로부터 데이터를 보호할 수 있습니다.
둘째, 가용성(Availability)입니다. 클라우드 인프라스트럭처는 여러 지역에 분산된 데이터 센터를 통해 높은 가용성을 보장합니다. 서비스 다운 타임을 최소화하고, 자동화된 백업과 복구 시스템을 통해 데이터 손실을 방지합니다.
셋째, 성능(Performance)입니다. 클라우드 인프라스트럭처는 유동적인 리소스를 제공하여, 서비스 성장에 따라 필요한 만큼 리소스를 확장할 수 있습니다. 최신 하드웨어와 최적화된 네트워크 인프라를 통해 높은 성능을 유지합니다.
가상 머신은 물리적 하드웨어를 소프트웨어로 가상화한 것이며, 독립적인 운영체제를 실행할 수 있습니다.
컨테이너는 운영체제 레벨에서 애플리케이션과 실행 환경을 패키징하여, 자원 효율성이 높고 마이크로서비스에 적합합니다.
서버리스는 개발자가 서버 관리를 신경 쓰지 않고 코드 실행에 집중할 수 있게 하며, 사용한 만큼만 비용을 지불하는 모델입니다.
AWS EC2 는 확장 가능하고 유연한 가상 서버를 제공하는 서비스입니다. 사용자는 필요에 따라 컴퓨팅 리소스를 조정할 수 있으며, 사용한 만큼만 비용을 지불합니다. 또한, 다양한 보안 및 관리 기능을 통해 안정적이고 안전한 클라우드 환경을 제공합니다.
애플리케이션 로드 밸런서(Application Load Balancer, ALB): HTTP/HTTPS 트래픽을 대상으로 하며, 고급 라우팅 기능을 제공합니다. URL, 호스트 기반 라우팅 및 WebSocket 지원이 특징입니다.
네트워크 로드 밸런서(Network Load Balancer, NLB): 초당 수백만 요청을 처리할 수 있으며, 초저지연을 제공합니다. TCP, UDP 및 TLS 트래픽을 위한 로드 밸런싱을 지원합니다.
클래식 로드 밸런서(Classic Load Balancer, CLB): 기존의 EC2- Classic 네트워크에서 사용되며, 기본적인 로드 밸런싱 기능을 제공합니다. HTTP/HTTPS 및 TCP 트래픽을 분산합니다.
AWS EBS(Amazon Elastic Block Store)는 EC2 인스턴스를 위한 고성능 블록 스토리지 서비스입니다. EBS 볼륨은 네트워크를 통해 EC2 인스턴스에 연결되며, 데이터베이스, 파일 시스템 등 고성능 요구 사항을 충족합니다. 각 EBS 볼륨은 특정 가용 영역에 위치하며, 필요에 따라 크기와 성능을 조정할 수 있습니다. 스냅샷 기능을 통해 데이터 백업 및 복구가 용이합니다. EBS 는 높은 가용성과 내구성을 보장하는 구조로 설계되었습니다.
AWS S3(Amazon Simple Storage Service)는 확장 가능하고 내구성이 높은 객체 스토리지 서비스입니다. 다양한 데이터를 저장, 관리, 백업 및 분석할 수 있으며, 무제한의 용량을 제공합니다. 뛰어난 보안 기능과 데이터 접근 제어를 통해 데이터를 안전하게 보호합니다.
AWS 는 목적에 맞게 설계된 완전 관리형 데이터베이스로, 데이터 인프라를 현대화할 수 있습니다. 데이터베이스 마이그레이션은 간편하며, 다양한 데이터베이스를 지원하고 지속적인 데이터 복제를 제공합니다. 고성능 데이터베이스는 확장성, 고가용성, 내결함성을 갖추고 있으며, 성능 최적화가 가능합니다. AWS Database 를 통해 더 효율적이고 안정적인 데이터 관리가 가능합니다.
AWS Elastic File System(EFS)은 다중 AZ 에 걸쳐 확장 가능한 파일 스토리지 서비스입니다. 여러 EC2 인스턴스에서 동시에 액세스할 수 있으며, 자동으로 확장 및 축소되어 사용량에 따라 비용이 최적화됩니다. NFSv4 프로토콜을 사용하여 응용 프로그램과의 통합이 용이하며, 데이터의 높은 가용성과 내구성을 제공합니다.
Amazon Web Services 에서 제공하는 클라우드 스토리지에는 EFS, S3, 그리고 EBS 가 있습니다. 각각의 스토리지는 특성과 용도에 따라 다른 퍼포먼스를 보여줍니다.
첫째, Amazon EFS 는 다중 AZ 에 걸쳐 확장 가능한 파일 스토리지 서비스로, 여러 EC2 인스턴스에서 동시에 액세스할 수 있습니다. EFS 는 파일 기반의 스토리지로서, 동시 액세스와 높은 IOPS 요구사항을 가진 애플리케이션에 적합합니다.
둘째, Amazon S3 는 객체 스토리지 서비스로서, 무제한 용량을 제공하고, 뛰어난 내구성과 보안을 가지고 있습니다. S3 는 대규모 데이터의 저장 및 백업, 정적 웹 호스팅 등에 사용되며, 주로 웹 애플리케이션 및 데이터 분석에 적합합니다.
셋째, Amazon EBS 는 EC2 인스턴스에 연결되는 블록 수준의 스토리지로, 특정 EC2 인스턴스와의 연결에 사용됩니다.
EBS 는 데이터베이스나 로그 파일과 같은 I/O 집약적인 애플리케이션에 적합하며, 특정 인스턴스에 고정된 스토리지가 필요한 경우에 사용됩니다. 이렇게 각각의 스토리지 유형은 다른 퍼포먼스 특성을 가지고 있으며, 애플리케이션의 요구사항과 용도에 따라 적합한 스토리지를 선택할 수 있습니다.
AWS VPC(Amazon Virtual Private Cloud)는 사용자가 정의한 가상 네트워크 환경 내에서 AWS 리소스를 안전하게 배치할 수 있는 서비스입니다. VPC 를 사용하면 사용자는 가상 네트워크의 IP 주소 범위, 서브넷, 라우팅 테이블 및 네트워크 게이트웨이를 제어할 수 있으며, AWS 클라우드 내에서 완전히 격리된 네트워크를 생성할 수 있습니다. VPC 는 보안 및 네트워크 관리를 위한 중요한 기능을 제공하여 클라우드 인프라를 보다 효율적으로 운영할 수 있습니다.
AWS VPC(Virtual Private Cloud) Routing 은 VPC 내에서 네트워크 트래픽을 전달하는 방법을 결정하는 중요한 요소입니다. VPC Routing 은 주로 네트워크 트래픽을 어떤 대상으로 보낼지를 결정하는 역할을 합니다.
첫째로, VPC 내의 서브넷은 라우팅 테이블을 통해 다른 서브넷 및 인터넷 게이트웨이, 가상 프라이빗 게이트웨이(VPN 또는 Direct Connect 를 통한 연결)로의 트래픽을 라우팅합니다. 이를 통해 서브넷 간 통신 및 외부 리소스와의 통신이 가능합니다.
둘째로, VPC Peering 을 사용하면 두 개의 VPC 간에 프라이빗한 네트워크 통신이 가능하며, 이를 위해서도 라우팅 테이블을 설정합니다. VPC Peering 을 통해 VPC 간 통신을 보안적으로 격리하고 효율적으로 관리할 수 있습니다.
마지막으로, AWS Direct Connect 를 사용하는 경우 VPC 의 라우팅은 Direct Connect 연결을 통해 온프레미스 데이터 센터와의 연결을 제어합니다. 이를 통해 온프레미스와 클라우드 간의 안전하고 안정적인 연결을 구축할 수 있습니다. 이러한 VPC Routing 은 AWS 클라우드 내에서 네트워크 트래픽을 효율적으로 관리하고 보안을 유지하는 데 중요한 역할을 합니다.
VPC 라우팅은 목적지 기반 라우팅, 서브넷 레벨 라우팅, 인터넷 게이트웨이 및 가상 프라이빗 게이트웨이 연결, 라우팅 우선순위, 동적 또는 정적 라우팅 기능을 제공합니다.
AWS VPC(Virtual Private Cloud) Security Group 은 네트워크 보안을 관리하는 데 사용되는 가상 방화벽입니다. Security Group 은 EC2 인스턴스와 관련되어 있으며, 인바운드 및 아웃바운드 트래픽을 제어하여 보안을 강화합니다. 각 Security Group 은 규칙을 통해 인바운드 및 아웃바운드 트래픽을 제어하며, 규칙은 프로토콜, 포트 및 소스/대상 IP 주소로 정의됩니다. 이를 통해 필요한 트래픽만을 허용하고, 보안 위협으로부터 시스템을 보호할 수 있습니다. 또한, Security Group 은 EC2 인스턴스의 변경사항에 실시간으로 반영되므로 보안 설정을 동적으로 조정할 수 있습니다. 이를 통해 네트워크 보안을 강화하고, 유연하게 운영할 수 있습니다.
VPC Security Group 은 인바운드 및 아웃바운드 규칙, 서비스 및 포트 기반 필터링, 동적 그룹 소스, 표준 기본 보안, 동적 업데이트 및 실시간 적용 기능을 제공합니다.
온프레미스 데이터베이스 운영은 자체적으로 데이터 센터를 구축하고 유지해야 하며, 하드웨어, 소프트웨어 라이선스, 보안 및 유지 보수 비용이 발생합니다. 확장성이 제한되며, 유연성과 관리 편의성이 부족합니다. EC2 는 가상 서버를 제공하여 사용자가 직접 데이터베이스를 설치하고 관리해야 합니다. 사용자는 운영체제부터 데이터베이스 소프트웨어까지 모든 것을 관리해야 하며, 확장성과 유연성은 높지만 관리 부담이 있습니다. RDS 는 완전 관리형 서비스로 데이터베이스 운영, 관리 및 유지보수 작업을 AWS 에게 위임합니다. 사용자는 데이터베이스에 집중하고, 데이터베이스 업그레이드, 보안 패치 등의 작업을 자동화된 방식으로 처리할 수 있습니다. 이로써 관리 부담이 감소하고, 안정성과 성능이 향상됩니다.
AWS RDS(Amazon Relational Database Service)는 완전 관리형 관계형 데이터베이스 서비스로, 사용자는 데이터베이스 관리에 필요한 작업을 AWS 에게 위임할 수 있습니다. RDS 는 MySQL, PostgreSQL, Oracle, SQL Server 등 다양한 데이터베이스 엔진을 지원하며, 데이터베이스 생성, 운영, 확장 등의 복잡한 작업을 간편하게 처리합니다. 또한, 자동 백업, 복구, 보안 업데이트 등의 관리 작업을 제공하여 안전하고 신속한 데이터베이스 운영을 지원합니다.
제어(Control): EC2: 사용자가 운영체제부터 애플리케이션까지 모든 것을 직접 제어합니다. 인스턴스의 구성, 네트워크 설정, 보안 그룹 등을 사용자가 관리합니다. RDS: 데이터베이스 엔진 설정, 스토리지 용량, 백업 및 복원 등의 관리 작업을 AWS 가 자동으로 처리합니다. 사용자는 데이터베이스에 집중하고, 나머지는 AWS 에게 위임합니다.
관리(Management): EC2: 사용자는 운영체제 및 소프트웨어 업데이트, 보안 패치, 모니터링 등의 관리 작업을 수행해야 합니다.
RDS: AWS 는 데이터베이스 관리를 완전히 담당하며, 자동화된 백업, 복원, 보안 패치 등을 제공하여 관리 부담을 최소화합니다.
유연성(Flexibility): EC2: 다양한 운영체제 및 소프트웨어를 지원하며, 사용자는 자유롭게 인스턴스를 구성하고 애플리케이션을 설치할 수 있습니다.
RDS: 다양한 데이터베이스 엔진을 지원하며, 인스턴스 유형, 스토리지 크기 등을 유연하게 조정할 수 있습니다.
비용(Cost): EC2: 사용자는 인스턴스 운영 시간과 인스턴스 유형에 따라 비용을 지불합니다.
RDS: 사용자는 데이터베이스 엔진, 인스턴스 유형, 스토리지 크기에 따라 비용을 지불합니다. 그러나 관리 작업이 AWS 에 의해 자동으로 처리되므로 운영 비용이 저렴할 수 있습니다.
가용성(Availability) EC2: 다중 가용 영역에서 인스턴스를 실행하여 가용성을 보장할 수 있습니다.
RDS: 다중 가용 영역에서 데이터베이스를 자동으로 배치하여 가용성을 보장합니다. 데이터베이스 복제와 자동 장애 조치 기능을 제공하여 고가용성을 유지합니다.