일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- github
- ebs
- 자바스크립트
- Django
- Python
- dockerfile
- docker
- asgi
- WSGI
- Service
- elasticsearch
- DevOps
- intervals
- ansible
- event loop
- 쿠버네티스
- K8S
- Deployment
- EKS
- YAML
- IAC
- asyncio
- Kubernetes
- leetcode
- IAM
- AWS
- terraform
- EC2
- FastAPI
- POD
- Today
- Total
궁금한게 많은 개발자 노트
클라우드 관련 업무 지식 본문
방화벽 vs waf
WAF는 HTTP 트래픽을 타깃으로 지정하여 웹 애플리케이션을 보호합니다. WAF는 외부 사용자와 웹 애플리케이션 사이에 위치하여 모든 HTTP통신을 분석합니다. 즉 애플리케이션 7 Layer에 위치합니다.
방화벽은 TCP/IP 레벨에서 IP/Port 신뢰 여부를 기준으로 구분해주는 접근제어 기반의 보안 솔루션입니다. 3 Layer인 네트워크 레이어에서는 IP기반 필터링을 하고, 4 Layer인 전송 계층에서는 TCP/UDP 세션을 모니터링 합니다.
대칭키와 비대칭키
- 대칭키 암호화: 대칭키는 하나의 키를 사용해 데이터를 암호화하고 복호화하는 방식입니다. 이 방식은 계산량이 적어 빠르고 효율적이지만, 사전에 송신자와 수신자가 안전하게 공유할 수 있는 방법이 필요합니다.
- 비대칭키 암호화: 비대칭키는 공개키와 개인키로 이루어진 두 개의 키를 사용합니다. 공개키는 모두에게 알려져 있고, 개인키는 소유자만이 알고 있어야 합니다. 데이터는 공개키를 이용해 암호화되고, 개인키를 이용해 복호화할 수 있습니다. 이 방식은 보안성이 높지만 계산량이 많아 상대적으로 느립니다.
고가용성은 무엇인지
고가용성은 시스템이나 서비스가 장애 없이 계속적으로 운영되는 성질을 말합니다. 즉, 시스템이 항상 동작 중이어야 하는 요구사항을 충족시키기 위해, 예비 시스템을 준비하거나 중복된 구성 요소를 사용하여 단일 실패 지점을 제거함으로써 시스템의 다운타임을 최소화하려는 개념입니다. 고가용성은 특히 금융 서비스, 의료, 교통 제어 등과 같이 연속적인 운영이 필수적인 산업에서 중요합니다.
RTO (Recovery Time Objective)
RTO : 목표 복구 시간
장애 발생 시 시스템을 원 상태로 복원하는데 소요되는 시간
- 고려사항
시스템이 얼마나 빨리 복구되어야 하는가
서비스가 재개될 때까지 걸리는 시간
RPO (Recovery Point Objective)
RPO : 목표 복구 시점
장애 발생 시 비즈니스 연속을 위해 어느 시점으로 백업할 지 결정하게 될 지표
- 고려사항
데이터 손실을 얼마나 감당할 수 있는가
감내할 수 있는 데이터 손실의 양(시간)
현재로부터 가장 가까운 백업지점까지의 목표 시간
배포 전략
블루 그린: 동일한 서버를 미리 구축한 뒤, 라우팅을 순간적으로 전환하여 새로운 버전을 배포하는 방식
롤링 업데이트: 새로운 버전의 애플리케이션으로 서서히 교체하는 배포 전략
카나리 특징: 미리 위험을 감지하여 대응할 수 있도록 하는 배포 방식입니다. 구 버전의 서버와 새 버전의 서버들을 구성하고 일부 트래픽을 새 버전으로 분산하여 오류 여부를 판단하기 때문에 오류율 및 성능 모니터링에 유용
Bastion host
bastion host는 내부 네트워크와 외부 네트워크 간의 보안 게이트웨이 역할을 하는 서버입니다. 주로 외부에서 내부 네트워크로 접근할 때 직접 내부 서버에 접근하지 않고 중계 서버 역할을 하는 것이 목적입니다.
bastion host를 사용하면 보안 강화, 접근 제어를 통해 불 필요한 접근을 차단하고 모든 연결 활동을 Bastion Host에서 기록하여 추적할 수 있을 뿐만 아니라 SSH 프로토콜을 통해 터널링이 가능합니다.
CDN은 무엇이고 k8s환경에서는 어떻게 구축
CDN은 Content Delivery Network의 약자로 웹 콘텐츠를 사용자와 가장 가까운 서버에서 제공해 전송 속도를 최적화하는 네트워크 인프라입니다. CDN은 분산 서버 네트워크로 구성되어 있으며 콘텐츠 캐싱, 지연 시간 감소, 서버 부하 감소, DDoS 공격 방어 및 SSL 인증서 제공으로 보안 강화 등의 역할을 합니다.
쿠버네티스에서 CDN을 구축하려면 CDNS서비스와 연동하는 것이 일반적입니다. AWS의 경우 CloudFront와 연동할 수 있습니다. 이 과정에서는 일반적으로 정적파일을 S3에 저장하고 CloudFront를 통해 해당 파일을 캐싱하여 성능을 높이는 방식으로 이루어집니다.
S3버킷에 정적파일을 저장하고 S3의 파일을 CloudFront에서 읽을 수 있도록 버킷 정책을 설정합니다.
이후 CloudFront를 찾아 전 세계 Region에 캐싱 및 배포합니다. 배포 설정에서 캐싱 행동 및 TTL을 설정할 수도 있습니다.
이제 쿠버네티스 상의 애플리케이션에서는 정적 파일 업로드 시에는 S3 URL을 사용하지만, 파일에 접근 시에는 배포된 CloudFront URL을 사용하여 가까운 Region에 캐싱된 정적 파일을 빠르게 받을 수 있습니다.
'DevOps' 카테고리의 다른 글
azure & github certification (0) | 2024.11.08 |
---|---|
AWS와 Azure (0) | 2024.11.01 |
컨테이너와 가상 머신 (0) | 2024.09.23 |
서버리스 (Serverless) (2) | 2024.09.17 |
[ k8s ] Kubernetes Cluster AutoScaler VS Karpenter (0) | 2024.04.19 |