Skip to content

Commit

Permalink
1
Browse files Browse the repository at this point in the history
1
  • Loading branch information
javalive committed Apr 21, 2020
1 parent d2a950f commit e58227c
Show file tree
Hide file tree
Showing 38 changed files with 1,030 additions and 607 deletions.
345 changes: 345 additions & 0 deletions admin/enterprise.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,345 @@
.. _enterprise:

21์žฅ. 2-Tier ๊ตฌ์กฐ
****************************

์ด ์žฅ์—์„œ๋Š” ๋Œ€๊ทœ๋ชจ ์„œ๋น„์Šค์— ์ ํ•ฉํ•œ **2-Tier** ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์„ค๋ช…ํ•œ๋‹ค.
๋Œ€๊ทœ๋ชจ ์„œ๋น„์Šค๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” **HOT** & **COLD** ์ฝ˜ํ…์ธ ๋ฅผ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค.

- **HOT** - ์ž์ฃผ ์„œ๋น„์Šค๋˜๋ฉฐ Peak ์‹œ์  ํŠธ๋ž˜ํ”ฝ์˜ ๋Œ€๋ถ€๋ถ„์„ ์ฐจ์ง€ํ•œ๋‹ค.
- **COLD** - ๊ฐ„ํ—์ ์œผ๋กœ ์„œ๋น„์Šค๋˜์ง€๋งŒ ์ €์žฅ๊ณต๊ฐ„ ๋Œ€๋ถ€๋ถ„์„ ์ฐจ์ง€ํ•œ๋‹ค. (ํ”ํžˆ Long-tail์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.)

๋Œ€๊ทœ๋ชจ E-Commerce๋‚˜ ๋™์˜์ƒ ์„œ๋น„์Šค์˜ ๋ง‰๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ํŠธ๋ž˜ํ”ฝ์—๋Š” **HOT** ๊ณผ **COLD** ๊ฐ€ ํ˜ผ์žฌ๋˜์–ด ์žˆ์œผ๋ฉฐ ์ด๋ฅผ ์Šคํ† ๋ฆฌ์ง€๋งŒ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์–ด๋ ค์šด ๋ฌธ์ œ์ด๋‹ค.

- ์Šคํ† ๋ฆฌ์ง€ I/O ์„ฑ๋Šฅ์˜ ๋ณ‘๋ชฉ
- ์Šคํ† ๋ฆฌ์ง€ ๋ฐ ๋ฐฑ์—”๋“œ ์ฆ์„ค๋น„์šฉ
- SPOP (Single Point Of Pain)
- ๊ด€๋ฆฌ

์บ์‹œ๋Š” ์ด๋Ÿฐ ๋ฌธ์ œ์— ์•„์ฃผ ์ ํ•ฉํ•˜๋‹ค.
์›๋ณธ ์Šคํ† ๋ฆฌ์ง€ ํŒŒ์ผ๋ถ„ํฌ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๊ณ  ์˜ˆ๋ฅผ ๋“ค์–ด ๋ณด์ž.

.. figure:: img/enterprise27.png
:align: center

ํ”ํžˆ ๋‹จ์ˆœ ์บ์‹ฑ๋งŒ์œผ๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ํŒŒ์ผ์„ N๋“ฑ๋ถ„์œผ๋กœ ๋‚˜๋ˆ„์–ด ์„œ๋น„์Šคํ•˜๋Š” ๋ชจ์Šต์„ ์ƒ์ƒํ•œ๋‹ค.

.. figure:: img/enterprise28.png
:align: center

ํ•˜์ง€๋งŒ ํ˜„์‹ค์€ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์˜ ๊ท ๋“ฑ๋ถ„์‚ฐ(Round Robin)์„ ํ†ตํ•ด ๋ชจ๋‘ ๊ฐ™์€ ์ฝ˜ํ…์ธ ๋ฅผ ์„œ๋น„์Šคํ•˜๊ฒŒ ๋œ๋‹ค.

.. figure:: img/enterprise29.png
:align: center

์ด ๊ฒฝ์šฐ ์บ์‹œํšจ๊ณผ๋Š” ๋งค์šฐ ์ €ํ•˜๋˜์–ด ์Šคํ† ๋ฆฌ์ง€ ๋ถ€ํ•˜๋Š” ์ค„์–ด๋“ค์ง€ ์•Š๋Š”๋‹ค.

.. note:
Layer-7 ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋กœ URL ๋ผ์šฐํŒ…์„ ๊ตฌ์„ฑํ•˜์—ฌ๋„ ํŠน์ • ์„œ๋ฒ„์— **HOT** ์ฝ˜ํ…์ธ ๊ฐ€ ์ง‘์ค‘๋  ๊ฒฝ์šฐ ํŠธ๋ž˜ํ”ฝ ๋ˆŒ๋ฆผ ํ˜„์ƒ์ด ๊ฐœ์„ ๋˜์ง€ ์•Š๋Š”๋‹ค.
.. toctree::
:maxdepth: 2


.. _enterprise-conf:

๊ตฌ์„ฑ
====================================

๋Œ€๊ทœ๋ชจ ์„œ๋น„์Šค์—์„œ๋Š” ์บ์‹œ๋ฅผ 2-Tier ๊ตฌ์กฐ๋กœ ๋‘๋Š” ๊ฒƒ์ด ํšจ๊ณผ์ ์ด๋‹ค.

.. figure:: img/enterprise30.png
:align: center

=================== ======================================= =================================
๊ตฌ๋ถ„ Parent Layer Child Layer
=================== ======================================= =================================
์บ์‹ฑ๋Œ€์ƒ COLD ์ฝ˜ํ…์ธ  HOT ์ฝ˜ํ…์ธ 
์—ญํ•  ์ฝ˜ํ…์ธ  ๋ถ„์‚ฐ์ €์žฅ, ์Šคํ† ๋ฆฌ์ง€ ๋ถ€ํ•˜ ์ ˆ๊ฐ ์ฝ˜ํ…์ธ  ๋ถ„์‚ฐ
์ฆ์„ค์‹œ์  ์›๋ณธ ์ฝ˜ํ…์ธ  ์ฆ๊ฐ€์‹œ์  ํŠธ๋ž˜ํ”ฝ ์ฆ๊ฐ€์‹œ์ 
=================== ======================================= =================================

STON์€ ์ค‘์•™์ง‘์ค‘ ์„œ๋ฒ„์—†์ด ๊ตฌ์กฐ์™€ ์„ค์ •๋งŒ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค.


**Parent Layer** ๋Š” ๋‹จ์ˆœํ•˜๊ฒŒ ์›๋ณธ์„œ๋ฒ„์—์„œ ์บ์‹ฑํ•˜๋ฉด ๋œ๋‹ค. ::

# vhosts.xml - <Vhosts>

<Vhost Name="parent-1.example.com">
<Origin>
<Address>storage.example.com</Address>
</Origin>
<Options>
<IfRange Purge="ON">ON</IfRange>
</Options>
</Vhost>

- :ref:`env-vhost-activeorigin`
- :ref:`handling_http_requests_header_if_range`


**Child Layer** ์—์„œ๋Š” **Parent Layer** ์˜ ์ฃผ์†Œ๋กœ ์ฝ˜ํ…์ธ ๋ฅผ ๋ถ„์‚ฐํ•˜๋„๋ก ์„ค์ •ํ•œ๋‹ค. ::

# vhosts.xml - <Vhosts>

<Vhost Name="www.example.com">
<Origin>
<Address>parent-1.example.com</Address>
<Address>parent-2.example.com</Address>
<Address>parent-3.example.com</Address>
<Address>parent-4.example.com</Address>
</Origin>
<OriginOptions>
<BalanceMode>Hash</BalanceMode>
</OriginOptions>
</Vhost>
- :ref:`env-vhost-activeorigin`
- :ref:`origin-balancemode`


์„ค์ •์€ ๊ฐ„๋‹จํ•˜์ง€๋งŒ ๋งค์šฐ ํšจ๊ณผ์ ์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.
``<IfRange>`` ์„ค์ •์— ๋Œ€ํ•ด์„œ๋Š” `๋ธ”๋Ÿญ์บ์‹ฑ๊ณผ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ`_ ์—์„œ ์ž์„ธํžˆ ๋‹ค๋ฃฌ๋‹ค.



.. _enterprise-block:

๋ธ”๋Ÿญ์บ์‹ฑ๊ณผ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ
====================================

์›น๊ณผ ๊ฐ™์€ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ์™„๋ฒฝํ•œ **๋ฌด๊ฒฐ์„ฑ/์ •ํ•ฉ์„ฑ** ์„ ๋ณด์žฅํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์–ด๋ ค์šด ์ผ์ด๋‹ค.
ํŠนํžˆ HTTP ํ”„๋กœํ† ์ฝœ๋งŒ์œผ๋กœ๋Š” ๋ฌธ์ œํ•ด๊ฒฐ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์–‘ํ•œ ๊ด€์ ์˜ ์ ‘๊ทผ์ด ํ•จ๊ป˜ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•œ๋‹ค.


HTTP ํ”„๋กœํ† ์ฝœ์€ ``Range`` ํ—ค๋”๋ฅผ ํ†ตํ•œ ๋ธ”๋Ÿญ ๋‹ค์šด๋กœ๋“œ์™€ ์บ์‹ฑ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ง€์›ํ•œ๋‹ค.
๋”ฐ๋ผ์„œ ``Range`` ์š”์ฒญ์„ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์Šคํ…œ์ด๋ผ๋ฉด ๋ฐ˜๋“œ์‹œ ๋‹ค์Œ 3๊ฐ€์ง€ ์‚ฌํ•ญ์„ ์ค€์ˆ˜ํ•ด์•ผ ๋ฌด๊ฒฐ์„ฑ/์ •ํ•ฉ์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

- **Client** - ์ตœ์ข… ํด๋ผ์ด์–ธํŠธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ์˜ ๋ฌด๊ฒฐ์„ฑ ์ฒ˜๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜
- **Caching Layer** - ๊ณ„์ธต ์บ์‹œ์—์„œ์˜ ๋ฌด๊ฒฐ์„ฑ ๋ณด์žฅ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๋ฐ ๊ตฌ์„ฑ
- **๊ด€๋ฆฌ** - ์ปจํ…์ธ  ์ค‘์‹ฌ๋ถ€ํ„ฐ ๋ฐ”๊นฅ(Edge)์ชฝ์œผ๋กœ์˜ Purge ํ”Œ๋กœ์šฐ


๋ธ”๋Ÿญ์บ์‹ฑ์ด ํ•„์š”ํ•œ ์ด์œ 
------------------------------------

๊ฒŒ์ž„ ์„ค์น˜ํŒŒ์ผ์ฒ˜๋Ÿผ GB๊ธ‰์˜ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์„ ์ „์†กํ•˜๋Š” ๊ฒฝ์šฐ ํ•œ๋ฒˆ์˜ ๋‹ค์šด๋กœ๋“œ๋กœ ํŒŒ์ผ์„ ์™„์„ฑํ•˜๊ธฐ๋Š” ์‰ฝ์ง€ ์•Š๋‹ค.
์ด๋Ÿฐ ๊ฒฝ์šฐ ํด๋ผ์ด์–ธํŠธ๋Š” ์ด์–ด๋ฐ›๊ธฐ, ๋‚˜๋ˆ„์–ด ๋ฐ›๊ธฐ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ํŒŒ์ผ์„ ์™„์„ฑ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•œ๋‹ค.

๋งŒ์•ฝ ์บ์‹œ์„œ๋ฒ„๊ฐ€ ๋ธ”๋Ÿญ์บ์‹ฑ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, ์•„๋ž˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์„ ๋‹ค์šด๋กœ๋“œํ•˜๋ ค๋Š” ํด๋ผ์ด์–ธํŠธ๋Š” ์˜ค๋žซ๋™์•ˆ ๋Œ€๊ธฐํ•˜๊ฒŒ ๋œ๋‹ค.

.. figure:: img/enterprise1.png
:align: center

๋ธ”๋Ÿญ์บ์‹ฑ์€ ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ๊ทผ๋ณธ์ ์œผ๋กœ ํ•ด๊ฒฐํ•˜์—ฌ ๋น ๋ฅธ ๋ฐ˜์‘์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค.

.. figure:: img/enterprise2.png
:align: center


.. note:
STON ์บ์‹ฑ์—”์ง„์€ ๋ธ”๋Ÿญ์บ์‹ฑ ๊ธฐ๋ฐ˜์ด๋‹ค.
์ด์–ด๋ฐ›๊ธฐ์™€ ๋ฌด๊ฒฐ์„ฑ
------------------------------------

๋‹จ์ˆœํ•œ ์›น์„œ๋ฒ„์™€ HTTP ํด๋ผ์ด์–ธํŠธ์˜ 1:1 ๊ด€๊ณ„์—์„œ๋„ ๋ฌด๊ฒฐ์„ฑ์ด ๊นจ์งˆ ์ˆ˜ ์žˆ๋‹ค.
๋‹ค์Œ์€ ํด๋ผ์ด์–ธํŠธ์—์„œ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์ž ์‹œ ๋ฉˆ์ถ˜ ์ƒํ™ฉ์„ ๊ฐ€์ •ํ•œ๋‹ค.

.. figure:: img/enterprise3.png
:align: center

์ด ์ƒํƒœ์—์„œ ์›น์„œ๋ฒ„์˜ ํŒŒ์ผ์ด ๋ณ€๊ฒฝ๋˜๊ณ  ์ด์–ด๋ฐ›๊ธฐ๊ฐ€ ์ง„ํ–‰๋˜๋ฉด ๋ฌด๊ฒฐ์„ฑ์ด ๊นจ์ง„๋‹ค.

.. figure:: img/enterprise4.png
:align: center

2๋Œ€๋กœ ๊ตฌ์„ฑ๋œ ๋‹จ์ˆœ ๋ถ„์‚ฐ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์ผ์ง€๋„ ํ”ผํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ๋กœ ํ”„๋กœํ† ์ฝœ/์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ ˆ๋ฒจ์—์„œ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค.



If-Range ํ—ค๋”์™€ ๋ฌด๊ฒฐ์„ฑ
------------------------------------

HTTP์—์„œ๋Š” `If-Range <https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/If-Range>`_ ํ—ค๋”๋ฅผ ํ†ตํ•ด ๋ฌด๊ฒฐ์„ฑ ๋ฌธ์ œ๋ฅผ ๋‹ค๋ฃจ๋„๋ก ๊ถŒ๊ณ ํ•˜๊ณ  ์žˆ๋‹ค.
์•ž์„œ ๋‹ค๋ฃฌ ์ด์–ด ๋ฐ›๊ธฐ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ํด๋ผ์ด์–ธํŠธ๋Š” ``If-Range`` ํ—ค๋”๋ฅผ ๋ช…์‹œํ•˜๋ฉด ์ข€ ๋” ์œ ์—ฐํ•œ ๋Œ€์ฒ˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

**1. Client** - ``Range`` ์š”์ฒญ์— ``If-Range`` ํ—ค๋”๋ฅผ ๋ช…์‹œํ•œ๋‹ค.

**2. Server** - ``If-Range`` ํ—ค๋”๋ฅผ ํ†ตํ•ด ๋ฌด๊ฒฐ์„ฑ ๋ฌธ์ œ๊ฐ€ ์˜์‹ฌ๋˜๋ฉด ``206 Partial Content`` ์‘๋‹ต ๋Œ€์‹  ``200 OK`` ๋กœ ์ „์ฒด ํŒŒ์ผ์„ ์ „์†กํ•œ๋‹ค.

.. figure:: img/enterprise5.png
:align: center

**3. Client** - ํด๋ผ์ด์–ธํŠธ๋Š” ์ด์ „ ํŒŒ์ผ์„ ํ๊ธฐํ•œ๋‹ค. ์›น์„œ๋ฒ„์˜ ``200 OK`` ์‘๋‹ต ์„ธ์…˜์œผ๋กœ ์‹ ๊ทœ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.

.. figure:: img/enterprise6.png
:align: center

ํ‘œ์ค€ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ``If-Range`` ํ—ค๋” ์ง€์› ์ƒํƒœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. (2020๋…„ 4์›” 16์ผ ๊ธฐ์ค€)

.. figure:: img/enterprise7.png
:align: center

์ด์–ด๋ฐ›๊ธฐ, ๋ถ„ํ• ๋‹ค์šด๋กœ๋“œ๋ฅผ ์ง€์›ํ•˜๋Š” ์ „์šฉ ํด๋ผ์ด์–ธํŠธ๋ผ๋ฉด ๋ฐ˜๋“œ์‹œ ``If-Range`` ์ŠคํŽ™์„ ์ง€์›ํ•ด์•ผ ๋ฌด๊ฒฐ์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•œ๋‹ค.

.. note:
STON์€ v2.5.14 (2018.4.26) ๋ถ€ํ„ฐ ``If-Range`` ์ŠคํŽ™์„ ์ง€์›ํ•œ๋‹ค.
๊ณ„์ธต ์บ์‹œ๊ตฌ์กฐ์˜ ๋ฌธ์ œ
------------------------------------

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ทœ๋ชจ์—์„œ๋Š” ๊ณ„์ธต ์บ์‹œ๊ตฌ์กฐ๋ฅผ ํ†ตํ•ด ์Šค์ผ€์ผ๋ง ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค.
๊ฐ ๊ณ„์ธต์€ ์„œ๋กœ ๋‹ค๋ฅธ ๋ชฉ์ ์„ ๊ฐ€์ง„๋‹ค.

- **1์ฐจ/๋ถ€๋ชจ ์บ์‹œ** - ์ปจํ…์ธ ๋ฅผ ๋ถ„์‚ฐํ•˜์—ฌ ์ €์žฅํ•œ๋‹ค. ๋” ํฐ ์ €์žฅ๊ณต๊ฐ„์„ ๊ฐ€์ง„๋‹ค.

- **2์ฐจ/์ž์‹ ์บ์‹œ** - ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. ๋” ๋น ๋ฅธ ์„ฑ๋Šฅ์„ ๊ฐ€์ง„๋‹ค.

.. figure:: img/enterprise8.png
:align: center

์บ์‹œ๋Š” ์ƒํ˜ธ๋…๋ฆฝ์ ์ด๋ฏ€๋กœ 1์ฐจ/๋ถ€๋ชจ ์บ์‹œ์—์„œ ์ผ์‹œ์ ์ธ ์ปจํ…์ธ  ๋ถˆ์ผ์น˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

.. figure:: img/enterprise9.png
:align: center

์ด ์ƒํƒœ์—์„œ 2์ฐจ/์ž์‹ ์บ์‹œ์—์„œ ์ปจํ…์ธ  ๊ฐฑ์‹ ์ด ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ๋ฌด๊ฒฐ์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

.. figure:: img/enterprise10.png
:align: center



๊ณ„์ธต ์บ์‹œ์™€ If-Range์˜ ํ•œ๊ณ„
------------------------------------

``If-Range`` ํ—ค๋”๋Š” ์ปจํ…์ธ  ์†Œ๋น„์ž์ธ ์—”๋“œ์œ ์ €์—์„œ๋งŒ ์™„๋ฒฝํžˆ ๋™์ž‘ํ•œ๋‹ค.
์•„๋ž˜ ๊ทธ๋ฆผ์€ 2์ฐจ/์ž์‹ ์บ์‹œ์—์„œ ์ด์–ด๋ฐ›๊ธฐ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ์ƒํ™ฉ์ด๋‹ค.

.. figure:: img/enterprise11.png
:align: center

์ด ๋•Œ Child #1์€ ํ•ด๋‹น ์ปจํ…์ธ ๋ฅผ ํ๊ธฐํ•œ๋‹ค.

.. figure:: img/enterprise12.png
:align: center

ํ๊ธฐ๊ฐ€ ์ด๋ฃจ์–ด์ง€๋”๋ผ๋„ ๋‹ค์‹œ ์žฌ๊ฐœ๋˜๋Š” ์ƒํ™ฉ์—์„œ 1์ฐจ/๋ถ€๋ชจ ์บ์‹œ์˜ ์ปจํ…์ธ  ๋ถˆ์ผ์น˜ ๋ฌธ์ œ๋กœ ์ƒํ™ฉ์€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š๋Š”๋‹ค.

.. figure:: img/enterprise13.png
:align: center

์šด์ข‹๊ฒŒ ์ปจํ…์ธ ๊ฐ€ ์™„์„ฑ๋  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋ฌดํ•œ ๋ฃจํ”„์— ๋น ์งˆ ์ˆ˜๋„ ์žˆ๋‹ค.



Zero TTL (Time To Live)
------------------------------------

๊ทผ๋ณธ์ ์ธ ์›์ธ์€ 1์ฐจ/๋ถ€๋ชจ ์บ์‹œ์˜ ์ปจํ…์ธ  ๋ถˆ์ผ์น˜ ๋•Œ๋ฌธ์ด๋‹ค.
์ด ์ƒํƒœ๊ฐ€ ์œ ์ง€๋˜๋Š” ์ด์œ ๋Š” 1์ฐจ/๋ถ€๋ชจ ์บ์‹œ๊ฐ€ TTL(Time To Live) ๋™์•ˆ ์›๋ณธ์„œ๋ฒ„์˜ ๊ฐฑ์‹ ์„ ํ™•์ธํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
๋‹ค์†Œ ๊ทน๋‹จ์ ์ธ ๊ฒƒ์ฒ˜๋Ÿผ ๋“ค๋ฆด์ง€๋„ ๋ชจ๋ฅด์ง€๋งŒ 1์ฐจ/๋ถ€๋ชจ ์บ์‹œ์˜ TTL์„ 0์ดˆ๋กœ ์„ค์ •ํ•˜๋ฉด ์‘๋‹ต ์ „ ์›๋ณธ์„œ๋ฒ„์˜ ๋ณ€๊ฒฝ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

.. figure:: img/enterprise14.png
:align: center

TTL์ด 0์ธ ๊ฒฝ์šฐ 1์ฐจ/๋ถ€๋ชจ ์บ์‹œ์™€ ์›๋ณธ์„œ๋ฒ„๊ฐ„์— 1 ํŠธ๋žœ์žญ์…˜ ๋™์•ˆ๋งŒ ์ปจํ…์ธ ๊ฐ€ ์œ ํšจํ•˜๋‹ค.
์ฆ‰ ํŠธ๋žœ์žญ์…˜์ด ๋๋‚จ๊ณผ ๋™์‹œ์— ์ปจํ…์ธ ๋Š” ์ฆ‰์‹œ ๋งŒ๋ฃŒ๋œ๋‹ค.
์ดํ›„ ๋‹ค์‹œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐ˜๋“œ์‹œ ์›๋ณธ ๊ฐฑ์‹ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.
์ด ๋ฐฉ์‹์˜ ์ตœ๋Œ€ ๋‹จ์ ์€ ์›๋ณธ ์š”์ฒญ์ด ๋งค์šฐ ๋งŽ์•„์ง„๋‹ค๋Š” ์ ์ด๋‹ค.

.. figure:: img/enterprise15.png
:align: center

์ ์ ˆํžˆ ์งง์€ TTL์€ ๋ฌด๊ฒฐ์„ฑ ๋ฌธ์ œ์˜ ๋นˆ๋„๋ฅผ ๋‚ฎ์ถ”๋ฉฐ ์›๋ณธ ๋ถ€ํ•˜๋ฅผ ์ค„์ธ๋‹ค.
๊ด€๋ฆฌ์ž๋Š” ์ปจํ…์ธ  ์‹ ์„ ๋„(Freshness)์™€ TTL ์‚ฌ์ด์˜ Trade-off ๊ด€๊ณ„๋ฅผ ์ •ํ™•ํžˆ ์ดํ•ดํ•˜๊ณ  ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.



๋ถ„์‚ฐ ๊ณ„์ธต๊ณผ STON์˜ Eventual Consistency
------------------------------------

์•ž์„œ ๋…ผ์˜๋œ ๋ชจ๋“  ๋ฌธ์ œ๋“ค์€ ๋น„๋‹จ ๋ถ„์‚ฐ ์บ์‹œ์—๋งŒ ๊ตญํ•œ๋œ ๋ฌธ์ œ๋Š” ์•„๋‹ˆ๋‹ค.
๊ณ„์ธต ์บ์‹œ๋Š” ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์˜ ํ•œ ์ข…๋ฅ˜์ด๋ฏ€๋กœ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์˜ ์ •ํ•ฉ์„ฑ/๋ฌด๊ฒฐ์„ฑ ์ฒ˜๋ฆฌ ๋ชจ๋ธ์„ ์ฐธ์กฐํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•˜๋‹ค.
STON์€ ``If-Range`` ํ—ค๋”๋ฅผ ํ†ตํ•ด ์ตœ์ข… ์ •ํ•ฉ์„ฑ(Eventual Consistency) ๋ชจ๋ธ์„ ๊ตฌํ˜„ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค.
๋ฌธ์ œ ์ƒํ™ฉ์€ ๋‹ค์Œ 2๊ฐ€์ง€์ด๋‹ค.

.. figure:: img/enterprise16.png
:align: center

์œ„ ๊ทธ๋ฆผ์˜ ๋นจ๊ฐ„์ƒ‰ ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜๋Š” ์ˆœ๊ฐ„ ๋ฌด๊ฒฐ์„ฑ์ด ๊นจ์ง„๋‹ค. 2๊ฐ€์ง€ ์ƒํ™ฉ์„ ๋‚˜๋ˆ„์–ด ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค.


๋จผ์ € โ‘ ๋ฒˆ ์ƒํ™ฉ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. 2์ฐจ/์ž์‹ ์บ์‹œ๊ฐ€ 1์ฐจ/๋ถ€๋ชจ ์บ์‹œ์— Range ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ If-Range ๋ฅผ ๋ช…์‹œํ•œ๋‹ค.

.. figure:: img/enterprise17.png
:align: center

1์ฐจ/๋ถ€๋ชจ ์บ์‹œ๋Š” 2์ฐจ/์ž์‹ ์บ์‹œ๊ฐ€ ๋ณด๋‚ด๋Š” ``If-Range`` ๋ฅผ ๊ฒ€์‚ฌํ•ด ์ž์‹ ๋ณด๋‹ค ์ตœ์‹ ์˜ ์ปจํ…์ธ ๋ฅผ ์†Œ์œ ํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ์Šค์Šค๋กœ๋ฅผ ํ๊ธฐํ•œ๋‹ค.
์ด๋Š” 2์ฐจ/์ž์‹ ์บ์‹œ๋ฅผ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํŒ๋‹จ๋  ๋•Œ๋งŒ ํ•  ์ˆ˜ ์žˆ๋Š” ์„ค์ •์ด๋‹ค.

.. figure:: img/enterprise18.png
:align: center

1์ฐจ/๋ถ€๋ชจ ์บ์‹œ๋Š” ์›๋ณธ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ตœ์‹  ์ปจํ…์ธ ๋กœ ๊ฐฑ์‹ ํ•œ๋‹ค.

.. figure:: img/enterprise19.png
:align: center

2์ฐจ/์ž์‹ ์บ์‹œ๋Š” 1์ฐจ/๋ถ€๋ชจ ์บ์‹œ๋กœ๋ถ€ํ„ฐ ์˜ฌ๋ฐ”๋ฅธ ์‘๋‹ต์„ ๋ฐ›๊ฒŒ ๋œ๋‹ค.

.. figure:: img/enterprise20.png
:align: center

โ‘ก๋ฒˆ ์ƒํ™ฉ์€ ๋ณด๋‹ค ์ง๊ด€์ ์ด๋‹ค.
2์ฐจ/์ž์‹ ์บ์‹œ๊ฐ€ 1์ฐจ/๋ถ€๋ชจ ์บ์‹œ์— ``Range`` ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ``If-Range`` ํ—ค๋”๋ฅผ ๋ช…์‹œํ•œ๋‹ค.

.. figure:: img/enterprise21.png
:align: center

1์ฐจ/๋ถ€๋ชจ ์บ์‹œ๋Š” 2์ฐจ/์ž์‹ ์บ์‹œ๊ฐ€ ๋ณด๋‚ด๋Š” ``If-Range`` ๋ฅผ ๊ฒ€์‚ฌํ•ด ์ž์‹ ์ด ์ตœ์‹ ์˜ ์ปจํ…์ธ ๋ฅผ ์†Œ์œ ํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ``200 OK`` ๋กœ ์‘๋‹ตํ•œ๋‹ค.

.. figure:: img/enterprise22.png
:align: center

2์ฐจ/์ž์‹ ์บ์‹œ๋Š” ``If-Range`` ๋ฌด๊ฒฐ์„ฑ ๋ฌธ์ œ๊ฐ€ ํ™•์ธ๋œ ๊ฐ์ฒด๋ฅผ ํ๊ธฐํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์‹คํŒจ ์‹œํ‚จ๋‹ค.
1์ฐจ/๋ถ€๋ชจ ์บ์‹œ๊ฐ€ ๋ณด๋‚ธ ``200 OK`` ์‘๋‹ต ์„ธ์…˜์„ ํ†ตํ•ด ์ƒˆ๋กœ์šด ์ปจํ…์ธ  ์บ์‹ฑ์„ ์‹œ์ž‘ํ•œ๋‹ค.

.. figure:: img/enterprise23.png
:align: center

2์ฐจ/์ž์‹ ์บ์‹œ๋Š” ์ตœ์‹  ์ปจํ…์ธ ๋ฅผ ์บ์‹ฑํ•˜๊ฒŒ ๋œ๋‹ค. ์ดํ›„ ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ๋Š” ์ตœ์‹  ์ปจํ…์ธ ๋ฅผ ์ œ๊ณต ๋ฐ›๋Š”๋‹ค.

.. figure:: img/enterprise24.png
:align: center

.. note:
STON์€ v2.7.3 (2020.3.25) ๋ถ€ํ„ฐ ๊ด€๋ จ ๋™์ž‘์„ ์ง€์›ํ•œ๋‹ค.
Purge ์ •์ฑ…
------------------------------------

์ด์ƒ์˜ ๋ฌธ์ œ์™€๋Š” ๋ณ„๋„๋กœ ์›๋ณธ ์ปจํ…์ธ  ๋ณ€๊ฒฝ ์‹œ์ ์— ๊ฐ€์žฅ ๋ช…ํ™•ํ•œ ๊ด€๋ฆฌ๋ฐฉ๋ฒ•์€ Purge์ด๋‹ค.
๋‹จ ๊ณ„์ธต Purge์—์„œ๋Š” ์ฃผ์˜ํ•  ์ ์ด ์žˆ๋‹ค.
๋ฐ˜๋“œ์‹œ 1์ฐจ/๋ถ€๋ชจ ์บ์‹œ์„œ๋ฒ„๋ถ€ํ„ฐ Purge๋ฅผ ์ง„ํ–‰ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

.. figure:: img/enterprise25.png
:align: center

๋งŒ์•ฝ 2์ฐจ/์ž์‹ ์บ์‹œ๋ถ€ํ„ฐ Purgeํ•  ๊ฒฝ์šฐ 2์ฐจ/์ž์‹ ์ปจํ…์ธ ๋ฅผ ๊ฐฑ์‹  ์‹œ์ ์— 1์ฐจ/๋ถ€๋ชจ ์บ์‹œ์˜ ์ปจํ…์ธ  ๊ฐฑ์‹ ์„ ๋ณด์žฅํ•  ์ˆ˜ ์—†์–ด ๋ฌด๊ฒฐ์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

.. figure:: img/enterprise26.png
:align: center

0 comments on commit e58227c

Please sign in to comment.