Cloud Architecture 구성 요소에 대한 이해
KUKJIN LEE • 4주 전 작성
1. 프레젠테이션 계층 (Presentation Layer)
-
웹 애플리케이션: 사용자가 웹 브라우저를 통해 접근할 수 있는 인터페이스입니다. React, Next.js 등의 프론트엔드 프레임워크를 사용하여 구축됩니다.
-
모바일 애플리케이션: 모바일 접근도 중요하므로, React Native, Flutter 등의 크로스 플랫폼 프레임워크를 통해 모바일 애플리케이션도 개발됩니다.
2. 애플리케이션 계층 (Application Layer)
-
API Gateway: 클라이언트의 요청을 처리하고, 백엔드 서비스와 통신할 수 있는 중앙 허브 역할을 합니다. AWS API Gateway 또는 NGINX를 통해 구현될 수 있습니다.
-
Authentication & Authorization: 인증 및 권한 관리 시스템으로, OAuth2, JWT 등을 사용하여 사용자 로그인 및 권한 검증을 처리합니다. AWS Cognito 또는 Firebase Authentication을 사용할 수 있습니다.
-
Business Logic Layer: 핵심 비즈니스 로직이 처리되는 부분입니다. 주요 기능을 포함합니다. Node.js, Spring Boot, Django 등의 백엔드 프레임워크를 사용하여 구현됩니다.
3. 데이터 계층 (Data Layer)
-
Database (RDBMS/NoSQL): 프로젝트 데이터를 저장하는 곳입니다. MySQL, PostgreSQL 등의 RDBMS를 사용하여 구조화된 데이터를 저장하고, MongoDB 같은 NoSQL 데이터베이스로 비정형 데이터를 관리할 수 있습니다. (반드시 RDBMS를 사용하여 구조화된 데이터를 저장하고 NoSQL 데이터베이스에만 비정형 데이터를 저장할 필요는 없습니다.)
-
Data Lake: 대규모 프로젝트 데이터를 중앙에서 관리할 수 있는 데이터 레이크로, AWS S3나 Azure Blob Storage를 사용하여 대용량 파일 및 로그 데이터를 저장합니다.
-
Cache (Redis, Memcached): 빈번하게 사용되는 데이터를 빠르게 접근할 수 있도록 캐시를 사용합니다. 이를 통해 API 응답 시간을 줄이고 서버 부하를 경감시킵니다.
4. 클라우드 서비스 계층 (Cloud Service Layer)
-
Infrastructure as a Service (IaaS): AWS, Azure, GCP 등 클라우드 플랫폼을 사용하여 서버, 스토리지, 네트워크 등 인프라 자원을 관리합니다.
-
Containerization & Orchestration: 애플리케이션을 마이크로서비스 아키텍처로 운영하며, Docker 및 Kubernetes를 통해 애플리케이션의 배포 및 스케일링을 자동화합니다.
-
CI/CD Pipeline: Jenkins, GitLab CI, CircleCI 등을 사용하여 지속적인 통합 및 배포(CI/CD)를 자동화하고, 코드의 품질과 배포 속도를 개선합니다.
5. 통합 및 협업 도구 (Integration & Collaboration Tools)
-
Third-party Integration: Jira, Trello, Slack 등의 협업 도구와 연동하여 프로젝트 팀 간 커뮤니케이션과 일정 조율을 원활히 합니다. 이를 위해 RESTful API나 Webhooks를 사용하여 외부 시스템과의 통합을 지원합니다.
6. 모니터링 및 로깅 (Monitoring & Logging)
-
Monitoring: CloudWatch, Grafana, Prometheus와 같은 모니터링 도구를 사용하여 시스템 성능과 자원의 상태를 실시간으로 모니터링합니다.
-
Logging: Elasticsearch, Logstash, Kibana(ELK 스택) 또는 AWS CloudTrail을 통해 애플리케이션의 로그를 중앙에서 수집하고 분석합니다.
7. 보안 계층 (Security Layer)
-
Data Encryption: 클라우드 상의 데이터는 전송 중 및 저장 중 모두 암호화됩니다. 이를 위해 TLS(전송 계층 보안) 및 AES-256과 같은 암호화 알고리즘을 사용합니다.
-
Firewall & VPN: 외부 공격으로부터 시스템을 보호하기 위해 클라우드 제공자가 제공하는 방화벽 및 VPN을 설정하여 네트워크를 안전하게 유지합니다.
-
Compliance & Auditing: 규제 준수와 감사를 위한 로깅 및 보안 규정을 준수해야 합니다.
|--------------------|
| Presentation |
|--------------------|
↓
|--------------------|
| API Gateway | <- Authentication (JWT, OAuth)
|--------------------|
↓
|------------------------------------------|
| Business Logic Layer | <- Integration with BIM, Jira, etc.
|------------------------------------------|
↓
|-----------------------------------|
| Data Layer |
|-----------------------------------|
| RDBMS | NoSQL | Data Lake |
|-----------------------------------|
↓
|-----------------------------------|
| Cloud Infrastructure (AWS, GCP) |
|-----------------------------------|
↓
|-----------------------------------|
| Monitoring | Security Layer |
|-----------------------------------|