2.X/6. Modeling Your Data

6-4. Designing for Scale

drscg 2017. 9. 23. 13:04

Elasticsearch is used by some companies to index and search petabytes of data every day, but most of us start out with something a little more humble in size. Even if we aspire to be the next Facebook, it is unlikely that our bank balance matches our aspirations. We need to build for what we have today, but in a way that will allow us to scale out flexibly and rapidly.

Elasticsearch는 일부 기업에서 매일 수 PB(petabytes)의 데이터를 색인하고, 검색하기 위해 사용된다. 하지만, 대부분은 크기가 더 작은, 조그마한 데이터로 시작한다. 나중에 Facebook처럼 될 거라 꿈꾸겠지만, 은행 잔고는 그 열망과 일치하지 않을 것 같다.^^ 현재 가지고 있는 것으로 구축해야 하겠지만, 유연하고 신속하게 수평 확장(scale out)할 수 있는 방법으로 구축해야 한다.

Elasticsearch is built to scale. It will run very happily on your laptop or in a cluster containing hundreds of nodes, and the experience is almost identical. Growing from a small cluster to a large cluster is almost entirely automatic and painless. Growing from a large cluster to a very large cluster requires a bit more planning and design, but it is still relatively painless.

Elasticsearch는 확장 기능이 내장되어 있다. 노트북이나 수백 개의 node를 가진 cluster에서 매우 만족스럽게 동작할 것이다. 그리고, 그 방식도 거의 동일할 것이다. 작은 cluster에서 큰 cluster로 확장하는 것은 거의 전부가 자동이고, 힘들지 않다. 큰 cluster에서 매우 큰 cluster로 확장하는 것은 약간의 계획과 설계가 필요하지만, 여전히 비교적 힘들지 않다.

Of course, it is not magic. Elasticsearch has its limitations too. If you are aware of those limitations and work with them, the growing process will be pleasant. If you treat Elasticsearch badly, you could be in for a world of pain.

물론, 마법은 아니다. Elasticsearch도 한계가 있다. 그 한계를 인식하고, 그것들을 고려해서 작업한다면, 확장 프로세스는 쉬울 것이다. Elasticsearch를 올바르지 않게 다루면, 여러분은 고통의 세계에서 힘겨워할 것이다.

The default settings in Elasticsearch will take you a long way, but to get the most bang for your buck, you need to think about how data flows through your system. We will talk about two common data flows: time-based data (such as log events or social network streams, where relevance is driven by recency), and user-based data (where a large document collection can be subdivided by user or customer).

Elasticsearch의 기본 설정으로도 많은 진전이 있겠지만, 효과의 극대화를 위해, 시스템에서 데이터가 흘러가는 방법에 대해 생각해야 한다. 2 종류(log event나 SNS처럼, 최근의 데이터가 가장 관련 있는 시간 기반 - time-based - 의 데이터와, 사용자나 고객에 의해 큰 문서 집합이 분할되는 사용자 기반 - user-based - 의 데이터)의 일반적인 데이터에 대해 이야기할 것이다.

This chapter will help you make the right decisions up front, to avoid nasty surprises later.

이 장은, 미리 올바른 결정을 내리고, 나중의 어려움을 피하는데 도움이 될 것이다.

'2.X > 6. Modeling Your Data' 카테고리의 다른 글

6-3-6. Grandparents and Grandchildren  (0) 2017.09.23
6-3-7. Practical Considerations  (0) 2017.09.23
6-4-01. The Unit of Scale  (0) 2017.09.23
6-4-02. Shard Overallocation  (0) 2017.09.23
6-4-03. Kagillion Shards  (0) 2017.09.23