이제 크기 조절과 관련해
MemCache(멤캐시) 측면에서 알아야 할 걸 살펴보겠습니다
멤캐시 클러스터가 있고 캐시 노드가 2개 있습니다
멤캐시된 클러스터는 노드가 1에서 40개까지
있을 수 있습니다
이건 소프트한 제한인데
즉, 수평적 배율을 하려면 클러스터에서
노드를 추가, 제거해야 한다는 의미입니다
다음 슬라이드에서 보여드릴
자동 검색을 이용하면 앱이
이런 새 노트를 찾을 수 있을 것입니다
그 말은 수평 배율을 하고 싶다면
캐시 노드를 클러스터에 추가하면 된다는 의미이며
그 다음 자동 검색 메커니즘을 사용하면 됩니다
수직적 배율의 경우 더 크거나
작은 노드 유형으로 크기를 늘렸다 줄일 수 있습니다
스케일 업 프로세스는 근본적으로 새 노드
유형의 새 클러스터를 생성합니다
그런 다음 애플리케이션을 업데이트해
새 클러스터의 엔드포인트를 사용합니다
그런 다음 이전 클러스터를 삭제합니다
이 부분은 수동으로 해야 합니다
멤캐시에는
백업 시스템이 없습니다
즉, 멤캐시된 클러스터나 노드는 데이터
없이 시작한다는 의미입니다
따라서 여러분의 애플리케이션이 스스로 데이터를 채워야
합니다
백업 메커니즘이 있는 Redis와는 다릅니다
예를 들어, 기존 멤캐시된 클러스터를 보면
작은 인스턴스 유형을 실행하고 있습니다
애플리케이션에 현재 연결되어 있습니다
그러나 새로운 멤캐시된클러스터를 생성할 것입니다 더 큰 캐시 유형으로 생성할 것입니다
아시다시피 이 클러스터는 비어있습니다
애플리케이션 측면에서는 엔드포인트를 업데이트합니다
그 말은 이전 클러스터에 연결하는 것을
멈추고 새 클러스터에 연결하는 것입니다
잘 프로그램 돼있다면
앱이 멤캐시된 클러스터에 데이터를 채우게 됩니다
멤캐시된 자동 검색은 무엇일까요?
예를 들어 4개의 노드가 있는 클러스터가 있다고 가정합니다
클라이언트는 모든 노드에 연결하길 원합니다
전형적으로 이 4개 노드 각각에 클라이언트
레버퍼런스가 있어야 합니다 DNS 엔드포인트
이용해 연결하기 위해서입니다
그러나 시간이 지나면서 새 노드를 추가하기 시작하면 클라이언트가
어떻게 모든 노드를 업데이트 할까요?
이를 위해 자동 검색이란 것이 있습니다
클러스터 내 모든 캐시된 노드가 다른 노드에
대해 안다는 것입니다
따라서 클라이언트의 관점에서
모두와 매끄럽게 연결된다는 뜻입니다
무슨 뜻이냐면
클라이언트가 구성 엔드포인트에 접속해
1번 캐시 노드의 IP 주소로 돌아온다는 것입니다
그리고 캐시 노드 1에 직접 연결하면 캐시 노드
1은 클러스터 내 모든 노드의
IP 주소 메타데이터로 반응하고 클라이언트는
그것을 이용해 어떤 노드든 연결할
수 있어서 클러스터에서 올바른 데이터를
찾을 수 있습니다
마지막으로 점검할 지표가
있습니다 Redis와 매우 유사합니다
퇴거 정책은 사용
기간이 지난 물건을 캐시가 퇴거시켜서
새 글을 쓸 공간을 만드는 것입니다
새로운 퇴거 정책을 이용하거나 노드를 크게 만들거나
노드를 추가해서 규모를 키우는
것입니다
CPUtilization이
너무 크면 큰 노드 유형으로 확장하거나
노드를 추가해 확장해야 합니다
SwapUsage, 전과 마찬가지로
CurrConnection도 있습니다
여러분의 앱과 멤캐시
사이의 연결을 의미합니다
이로 인해 여러분의 애플리케이션에
너무 많은 연결에 의해 나쁜 행동을
하지 않도록 합니다
다음은 FreeableMemory입니다 호스트에서 사용 가능한
메모리의 양입니다
이해가 되면 좋겠습니다
이제 멤캐시 관련하여 이해하셨으면 좋겠습니다
다음 강의에서 뵙겠습니다