프로덕션 아키텍트
SeungpilPark opened this issue · comments
네트워크
VPC
subnets:
public:
10.0.0.0/24 : zoneA : public1 : ELB
10.0.0.1/24 : zoneB : public2 : ELB
private:
10.0.0.2/24 : zoneA : master 1~ : ELB
10.0.0.3/24 : zoneB : master 4~ : ELB
10.0.0.4/24 : zoneA : agentN : uengine cloud apps
10.0.0.5/24 : zoneB : agentN : uengine cloud apps
10.0.10.0/24 : zoneA : agentN : tenantA
10.0.10.1/24 : zoneB : agentN : tenantB
...
ELB:
마스터 로드밸런서:
dns: internal-master-balancer-1676051608.ap-northeast-2.elb.amazonaws.com
subnets:
10.0.0.2/24
10.0.0.3/24
targets:
- master1
- master2
- master3
- master4
- master5
퍼블릭 노드 로드밸런서:
dns: internal-public-balancer-1676051608.ap-northeast-2.elb.amazonaws.com
subnets:
10.0.0.0/24
10.0.0.1/24
targets:
- public1:9090
- public2:9090
퍼블릭 서브넷 라우팅 테이블:
10.0.0.0/16 local
0.0.0.0/0 igw-052cd5d812d249e59
프라이빗 서브넷 라우팅 테이블:
10.0.0.0/16 local
0.0.0.0/0 nat-0cac3b954d176010f
사용자 볼륨 구성
REX-Ray
:S3FS => 용량 제한 없이 데이터 안전 보관. IO 느림.
:EBS => 용량 제한 있지만 런타임 중 증설 가능. IO 빠름. S3 백업.
:EFS => 대량 병렬 공유 액세스. 용량 제한 있지만 런타임 중 증설 및 증감 가능. IO 확장 자동. S3 백업. 디스크 IO EC2 서버를 멀티 구성 가능.
REX-Ray server: EC2 mounted with EFS
REX-Ray client: All DC/OS agent node.
REX-Ray driver: DC/OS mesos docker excuter.
Provider Storage Platform(s)
Amazon EC2 EBS, EFS, S3FS
Ceph RBD
Dell EMC ScaleIO, Isilon
DigitalOcean Block Storage
FittedCloud EBS Optimizer
Google GCE Persistent Disk
Microsoft Azure Unmanaged Disk
VirtualBox Virtual Media
테넌트 DNS
테넌트 포함 DNS:
appname.tenantname.pas-mini.io
사용자가 DNS 를 소유하고 있는 도메인으로 변경법:
CNAME record type 으로
my.domain.com -> appname.tenantname.pas-mini.io
도커 레지스트리 관리:
AWS Elastic Container Registry
AWS 제공 수명 주기 관리 룰 적용. (Unused image auto deletion)
깃랩 관리:
EC2 Cluster with EFS?
GitLab은 AWS Elastic File System (EFS)을 사용하지 말 것을 강력히 권장합니다. 지원팀은 파일 시스템 액세스와 관련된 성능 문제를 지원할 수 없습니다.
https://docs.gitlab.com/ee/administration/high_availability/nfs.html#aws-elastic-file-system
스토리지: EBS with an NFS server
캐시: AWS Elastic Cache (Redis engine)
DB: AWS RDS (MultiAZ, Secondary is Read Replica setting)
서버: Multi Ec2 instaces in VPC with public,private subnets.
백업: Per day, S3 backup -> AWS glacier
RDS more:
다중 AZ 배포 읽기 전용 복제본
동기식 복제 – 높은 안정성 비동기식 복제 – 높은 확장성
기본 인스턴스의 데이터베이스 엔진만 활성 모든 읽기 전용 복제본은 접근이 가능하며 읽기 확장도 가능
자동 백업은 대기 상태에서 수행 기본 제공된 백업 구성 없음
단일 지역 내에 항상 2 개의 가용성 영역을 확장 가용 영역, 교차 AZ 또는 교차 지역 내에있을 수 있음
기본 데이터베이스 엔진 버전 업그레이드가 발생합니다. 데이터베이스 엔진 버전 업그레이드는 원본 인스턴스와 독립됨
문제가 감지되면 대기 모드로 자동 Failover 조치 독립형 데이터베이스 인스턴스로 수동 승격 될 수 있음
CI/CD -> Auto scaling with Spot instances.
테넌트 network isolation
런타임 중 DCOS 내부의 CDIR 블럭의 라우팅 테이블을 조정하는 방법은? 없다 (재인스톨하라고 함.)
- Docker network 를 사용해서 격리하는 방법.
- 테넌트를 위한 물리적 인스턴스 풀을 만드는 방법. (인스턴스 간 통신 rule iptable 업데이트)