Over the limit

클라우드 아키텍쳐 기본 본문

Network

클라우드 아키텍쳐 기본

ellapk 2024. 9. 12. 20:25

1. 아키텍처의 주요 구성 요소

1) 클라우드 서비스 모델

  • IaaS (Infrastructure as a Service): 가상 서버, 스토리지, 네트워크 등을 제공하며, 사용자가 시스템을 직접 설정 및 관리. (예: AWS EC2, Azure VM, Google Compute Engine)
  • PaaS (Platform as a Service): 애플리케이션 개발을 위한 플랫폼을 제공하며, 인프라는 관리되지만 개발자는 코드 작성에만 집중. (예: AWS Elastic Beanstalk, Google App Engine)
  • SaaS (Software as a Service): 최종 사용자를 위한 소프트웨어 애플리케이션 제공. (예: Gmail, Office 365, Salesforce)

2) 클라우드 배포 모델

  • Public Cloud: AWS, Azure 같은 퍼블릭 클라우드 제공업체가 제공하는 환경에서 서비스가 제공됨.
  • Private Cloud: 조직 내부에 클라우드 인프라를 배치하여 자체적으로 관리.
  • Hybrid Cloud: 퍼블릭과 프라이빗 클라우드의 장점을 결합한 형태, 필요에 따라 리소스를 상호 교환하여 사용.

 

 

 

2. 설계 원칙

1) 확장성 (Scalability)

  • 자동 확장(Auto-scaling): 트래픽이나 부하에 따라 자동으로 서버 인스턴스를 늘리거나 줄이는 방식.
  • 수평 확장(Horizontal scaling): 서버 인스턴스를 여러 대 추가하여 부하를 분산.
  • 수직 확장(Vertical scaling): 서버의 CPU, 메모리 등 자원을 추가하여 성능을 향상.

2) 가용성 (Availability)

  • 다중 지역 배포(Multi-region deployment): 여러 데이터 센터와 지역에 애플리케이션을 배포하여 장애 발생 시 다른 지역으로 트래픽을 전환.
  • 재해 복구 (Disaster recovery): 백업 및 복구 계획을 수립하여 데이터 유실이나 서비스 중단을 최소화.

3) 성능 최적화 (Performance Optimization)

  • 캐싱(Caching): Redis, Memcached 등 인메모리 캐시를 사용하여 자주 요청되는 데이터를 빠르게 제공.
  • CDN(Content Delivery Network): 전 세계에 분산된 서버를 통해 콘텐츠를 최단 경로로 사용자에게 전달.
  • 로드 밸런싱(Load balancing): 트래픽을 여러 서버에 분산시켜 서버 과부하를 방지하고 응답 속도를 향상.

4) 비용 효율성 (Cost Efficiency)

  • 사용량 기반 과금(Pay-as-you-go): 필요한 만큼만 리소스를 사용하고 그에 따라 비용을 지불하는 방식.
  • 스팟 인스턴스(Spot instance): 미사용 리소스를 저렴하게 사용, 하지만 갑작스러운 중단 위험이 있음.

5) 보안 (Security)

  • IAM (Identity and Access Management): 권한 관리, 리소스에 대한 접근을 최소한으로 설정하여 보안성을 강화.
  • 네트워크 보안(Network Security): VPC(Virtual Private Cloud), 방화벽, 보안 그룹을 통해 네트워크 내 트래픽을 제어.
  • 데이터 암호화(Data Encryption): 데이터 저장 및 전송 시 암호화하여 보안 강화.

 

 

 

3. 주요 클라우드 아키텍처 패턴

1) 마이크로서비스 아키텍처 (Microservices Architecture)

  • 특징: 애플리케이션을 여러 독립적인 서비스로 나누어 배포 및 관리.
  • 장점: 독립적인 배포 및 확장이 가능, 특정 서비스만 문제 발생 시 격리 가능.
  • 도구: Docker, Kubernetes, API Gateway

2) 서버리스 아키텍처 (Serverless Architecture)

  • 특징: 서버 관리를 전혀 하지 않고 애플리케이션 코드를 실행할 수 있는 아키텍처.
  • 장점: 비용 효율적이고 유연하게 확장 가능.
  • 도구: AWS Lambda, Azure Functions, Google Cloud Functions

3) 이벤트 기반 아키텍처 (Event-driven Architecture)

  • 특징: 시스템의 상태 변화를 이벤트로 처리하는 비동기 아키텍처.
  • 장점: 독립적인 이벤트 처리로 시스템 성능과 확장성을 향상.
  • 도구: Apache Kafka, AWS SNS/SQS

 

 

 

4. 데이터 관리

1) 데이터베이스 선택

  • 관계형 데이터베이스(Relational Database): 트랜잭션 성능이 중요한 경우 적합. (예: MySQL, PostgreSQL, AWS RDS)
  • NoSQL 데이터베이스: 대량의 비정형 데이터를 처리하거나, 고가용성 및 확장성을 요구하는 경우 적합. (예: MongoDB, AWS DynamoDB)

2) 데이터 파이프라인

  • ETL (Extract, Transform, Load): 데이터를 추출하고 변환한 후 저장소로 로드하는 방식.
  • 데이터 레이크: 다양한 데이터 소스를 중앙화하여 저장하는 시스템.

 

 

 

5. 모니터링 및 로깅

  • 클라우드 모니터링: AWS CloudWatch, Azure Monitor, Google Stackdriver 등을 사용하여 리소스 사용량, 성능, 오류를 모니터링.
  • 로깅: 시스템 내 발생하는 이벤트를 로깅하여 문제 발생 시 디버깅에 활용. (예: ELK Stack, AWS CloudTrail)

 

 

 

6. 지속적 통합 및 배포 (CI/CD)

  • CI/CD 파이프라인: Jenkins, GitLab CI, CircleCI 등을 사용하여 코드를 자주 배포하고 자동으로 테스트하여 안정성을 유지.
  • 인프라 자동화: Terraform, AWS CloudFormation 등 인프라를 코드로 관리하여 자동으로 인프라를 설정 및 관리.

'Network' 카테고리의 다른 글

Ping, Curl, Telnet 사용법과 특징  (4) 2024.10.11
윈도우 방화벽에서 특정 TCP 포트 열기  (0) 2024.10.11
Rounting 라우팅이란  (2) 2024.09.05
CDN vs 로드 밸런서  (0) 2024.08.30
로드 밸런서 Load Balancer란 ?  (0) 2024.08.30