ํค์ด ํ๋ธ๋ฅด!
์ด ๊ธฐ์ฌ์์๋ Yandex ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ์ ์ ์น์ฌ์ดํธ๋ฅผ ์ฝ๊ณ ๊ฐ๋จํ๊ฒ ํธ์คํ ํ๋ ๋ฐฉ๋ฒ, ์ฆ ๊ฐ์ฒด ์ ์ฅ์.
๊ฒฐ๊ตญ, ์ธ๋ถ ๋งํฌ๋ฅผ ํตํด ์ก์ธ์คํ ์ ์๋ ์น ํธ์คํ ์น์ฌ์ดํธ๋ฅผ ๊ฐ๊ฒ ๋ฉ๋๋ค.
์ด ๊ธฐ์ฌ๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ์ ์ฉํ ๊ฒ์ ๋๋ค.
- ์ด์ ๋ง ํ๋ก๊ทธ๋๋ฐ์ ๋ฐฐ์ฐ๋ ์ด๋ณด ๊ฐ๋ฐ์์ ๋๋ค.
- ํฌํธํด๋ฆฌ์ค๋ฅผ ๋ง๋ค์ด ๊ณต๊ฐ ๋๋ฉ์ธ์ ๋ฐฐ์นํ์ฌ ์น๊ตฌ์ ๊ณ ์ฉ์ฃผ์๊ฒ ๋ณด์ฌ์ฃผ๊ณ ์ถ์ ๊ฐ๋ฐ์.
์ฑ๋ช ์
์ต๊ทผ ์ ๋ ์ฌ๋๋ค์ด ๊ฐ์ธ ํ๋ จ์ ์ํด ์คํฌ์ธ ํธ๋ ์ด๋๋ฅผ ์ฐพ๋ ์ผ์ข ์ ๋ง์ผํ๋ ์ด์ค์ธ SaaS ์๋น์ค๋ฅผ ๊ฐ๋ฐํ๊ณ ์์์ต๋๋ค. Amazon Web Services ์คํ(์ดํ AWS๋ผ๊ณ ํจ)์ ์ฌ์ฉํ์ต๋๋ค. ํ์ง๋ง ํ๋ก์ ํธ์ ๋ ๊น์ด ํ๊ณ ๋ค์๋ก ์คํํธ์ ์ ์กฐ์งํ๋ ๋ค์ํ ํ๋ก์ธ์ค์ ๋ํด ๋ ๋ง์ ๋์์ค๋ฅผ ๋ฐฐ์ ์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
- AWS๋ ๋ง์ ๋์ ์๋นํ๊ณ ์์์ต๋๋ค. 3๋
๊ฐ ๋๊ธฐ์
์์ ๊ทผ๋ฌดํ๋ฉด์ Docker, Kubernetes, CI/CD, Blue Green ๋ฐฐํฌ์ ๊ฐ์ ์ฆ๊ฑฐ์์ ์ต์ํด์ก๊ณ , ์ผ์ฌ์ฐฌ ์คํํธ์
ํ๋ก๊ทธ๋๋จธ๋ก์ ์ด๋ฅผ ๊ตฌํํ๊ณ ์ถ์์ต๋๋ค. ๊ทธ ๊ฒฐ๊ณผ AWS๋ ํ ๋ฌ์ 300~400๋ฌ๋ฌ๋ฅผ ์๋นํ๋ค๋ ๊ฒฐ๋ก ์ ๋๋ฌํ์ต๋๋ค. ์ฟ ๋ฒ๋คํฐ์ค๋ ํด๋ฌ์คํฐ 100๊ฐ, ๋
ธ๋ XNUMX๊ฐ๋ก ์ต์ ์๊ธ์ด XNUMX๋ฌ๋ฌ ์ ๋๋ก ๊ฐ์ฅ ๋น์ผ ๊ฒ์ผ๋ก ๋ํ๋ฌ๋ค.
PS ์ฒ์๋ถํฐ ์ด ์์ ์ ์ํํ ํ์๋ ์์ต๋๋ค. - ๋ค์์ผ๋ก ๋ฒ์ ์ธก๋ฉด์ ์๊ฐํ๋ฉด์ ๋ค์๊ณผ ๊ฐ์ ๋ฒ๋ฅ 152-FZ์ ๋ํด ๋ฐฐ์ ์ต๋๋ค. "๋ฌ์์ ์ฐ๋ฐฉ ์๋ฏผ์ ๊ฐ์ธ ๋ฐ์ดํฐ๋ ๋ฌ์์ ์ฐ๋ฐฉ ์ํ ์ ์ ์ฅ๋์ด์ผ ํฉ๋๋ค.", ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ด๊ฐ ์ํ์ง ์๋ ๋ฒ๊ธ์ด ๋ถ๊ณผ๋ฉ๋๋ค. ๋๋ ์์์๋ถํฐ ๋์๊ฒ ์ค๊ธฐ ์ ์ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค :).
ํ์ํ
์ ๊ฐ ์๊ฐํ๋ Yandex.Cloud์ ์ฃผ์ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- 2-3๋ฐฐ ์ ๋ ดํจ(์ ๊ธฐ์ฌ ๋ฐ ๊ณต๊ฐ ๊ฐ๊ฒฉํ์ ๋ฐ๋ฆ)
๋ฌ์์ ์ฐ๋ฐฉ ์ํ ๋ด ์ฌ์ฉ์์ ๊ฐ์ธ ๋ฐ์ดํฐ ์ ์ฅ , ์๋ํ ์๋ง์กด์ ์์ง ๋ฌ์ฑํ ์ ์๋ ๋ชฉํ์ ๋๋ค.
์ด ์๋น์ค์ ๋ค๋ฅธ ๊ฒฝ์์ฌ๋ฅผ ์กฐ์ฌํ์ง๋ง ๋น์ Yandex๊ฐ ์ด๊ฒผ์ต๋๋ค.
๋ด ์์ ์ ๋ํด ๋งํ์ผ๋ ์ฐ๋ฆฌ๋ ์ฌ์ ์ ์์ํด์ผ ํฉ๋๋ค.
0๋จ๊ณ. ์ฌ์ดํธ ์ค๋น
๋จผ์ , ์ธํฐ๋ท์ ์ฌ๋ฆฌ๊ณ ์ถ์ ์น์ฌ์ดํธ๊ฐ ํ์ํฉ๋๋ค. ์ ๋ Angular ๊ฐ๋ฐ์์ด๊ธฐ ๋๋ฌธ์ ๊ฐ๋จํ SPA ์ ํ๋ฆฌ์ผ์ด์ ํ ํ๋ฆฟ์ ๋ง๋ค์ด์ ์ธํฐ๋ท์ ๊ฒ์ํ๊ฒ ์ต๋๋ค.
PS Angular๋ฅผ ์ดํดํ๊ฑฐ๋ ํด๋น ๋ฌธ์์ ๋ํด ์๋ ์ฌ๋
Angular์์ SPA ์ฌ์ดํธ๋ฅผ ์์ฑํ๊ธฐ ์ํด Angular-CLI๋ฅผ ์ค์นํด ๋ณด๊ฒ ์ต๋๋ค.
npm install -g @angular/cli
๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ Angular ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
ng new angular-habr-object-storage
๋ค์์ผ๋ก, ์ ํ๋ฆฌ์ผ์ด์ ํด๋๋ก ์ด๋ํ์ฌ ์คํํ์ฌ ๊ธฐ๋ฅ์ ํ์ธํ์ธ์.
cd angular-habr-object-storage
ng serve --open
์ ํ๋ฆฌ์ผ์ด์
์ด ์์ฑ๋์์ง๋ง ์์ง ํธ์คํ
ํ ์ค๋น๊ฐ ๋์ง ์์์ต๋๋ค. ๋ถํ์ํ ๊ฒ์ ๋ชจ๋ ์ ๊ฑฐํ๊ณ ํ์ํ ํ์ผ๋ง ๋จ๊ฒจ๋๊ธฐ ์ํด ์ ํ๋ฆฌ์ผ์ด์
์ ์์ ๋น๋(ํ๋ก๋์
)๋ก ์กฐ๋ฆฝํด ๋ณด๊ฒ ์ต๋๋ค.
Angular์์๋ ๋ค์ ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ์ํํ ์ ์์ต๋๋ค.
ng build --prod
์ด ๋ช
๋ น์ ๊ฒฐ๊ณผ๋ก ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฃจํธ์ ํด๋๊ฐ ๋ํ๋ฌ์ต๋๋ค. dist
์ฐ๋ฆฌ ์น์ฌ์ดํธ์ ํจ๊ป.
๊ณต์ฅ. ์ด์ ํธ์คํ ์ผ๋ก ๋์ด๊ฐ๊ฒ ์ต๋๋ค.
1 ๋จ๊ณ.
์ฌ์ดํธ๋ก ์ด๋ํ์
์ฐธ๊ณ :
- Yandex ์๋น์ค๋ฅผ ์ด์ฉํ๋ ค๋ฉด Yandex ๋ฉ์ผ์ด ํ์ํ ์ ์์ต๋๋ค(๊ทธ๋ฌ๋ ํ์คํ์ง๋ ์์ต๋๋ค).
- ์ผ๋ถ ๊ธฐ๋ฅ์ ๊ฒฝ์ฐ ๊ฐ์ธ ๊ณ์ข(์ต์ 500๋ฃจ๋ธ)์ ๋์ ์ ๊ธํด์ผ ํฉ๋๋ค.
์ฑ๊ณต์ ์ธ ๋ฑ๋ก ๋ฐ ์น์ธ ํ์๋ ๊ทํ์ ๊ฐ์ธ ๊ณ์ ์ด ์์ต๋๋ค.
๋ค์์ผ๋ก ๋ฉ๋ด ์ผ์ชฝ์์ ์ฌ์ดํธ ํธ์คํ ์ ์ฌ์ฉํ "Object Storage" ์๋น์ค๋ฅผ ์ฐพ์์ผ ํฉ๋๋ค.
๊ฐ๋จํ ๋งํ๋ฉด:
- Object Storage๋ Amazon์ ์ ์ฌํ AWS S3 ๊ธฐ์ ๊ณผ ํธํ๋๋ ํ์ผ ์คํ ๋ฆฌ์ง์ ๋๋ค. ์ด ๊ธฐ์ ์๋ ์ฝ๋์์ ์คํ ๋ฆฌ์ง๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ์์ฒด API๊ฐ ์์ผ๋ฉฐ AWS S3์ฒ๋ผ ์ ์ ์ฌ์ดํธ๋ฅผ ํธ์คํ ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- Object Storage์์๋ ํ์ผ์ ์ํ ๋ณ๋์ ์ ์ฅ ์์ญ์ธ "๋ฒํท"(๋ฒํท)์ ์์ฑํฉ๋๋ค.
๊ทธ์ค ํ๋๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ์๋น์ค ์ฝ์์์ "๋ฒํท ๋ง๋ค๊ธฐ" ๋ฒํผ์ ํด๋ฆญํ์ธ์.
๋ฒํท ์์ฑ ์์์๋ ๋ค์๊ณผ ๊ฐ์ ํ๋๊ฐ ์์ต๋๋ค. ์ด๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
- ๋ฒํท ์ด๋ฆ. ๋จ์ํ๋ฅผ ์ํด ํ๋ก์ ํธ๋ฅผ Angular์ ๋์ผํ๊ฒ ๋ถ๋ฅด๊ฒ ์ต๋๋ค.
angular-habr-object-storage
- ์ต๋. ํฌ๊ธฐ. ์ฌ์ดํธ๊ฐ ๋ฌด๋ฃ๋ก ์ ์ฅ๋์ง ์๊ณ ํ ๋น๋ ๊ฐ ๊ธฐ๊ฐ๋ฐ์ดํธ์ ๋ํด Yandex์ ์๋นํ ๊ธ์ก์ ์ง๋ถํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ์ฌ์ดํธ์ ๋ฌด๊ฒ๋งํผ ๋ฒ ํ ํฉ๋๋ค.
- ์ฝ๊ธฐ ๊ฐ์ฒด์ ๋ํ ์ก์ธ์ค์ ๋๋ค. ๋ ์ด์์์ ์ฌ๋ฐ๋ฅด๊ฒ ๊ทธ๋ฆด ์ ์๊ณ ์คํฌ๋ฆฝํธ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋๋ก ์ฌ์ฉ์๊ฐ ์ ์ ์ฌ์ดํธ์ ๊ฐ ํ์ผ์ ๋ฐ์์ผ ํ๋ฏ๋ก ์ด๋ฅผ "๊ณต๊ฐ"๋ก ์ค์ ํ์ต๋๋ค.
- ๊ฐ์ฒด ๋ชฉ๋ก์ ๋ํ ์ก์ธ์ค ๋ฐ ์ค์ ์ฝ๊ธฐ์ ๋ํ ์ก์ธ์ค์ ๋๋ค. "์ ํ"์ผ๋ก ๋์ธ์. ์ด๋ ๋ฒํท์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ด๋ถ ํ์ผ ์ ์ฅ์๋ก ์ฌ์ฉํ๊ธฐ ์ํด ํ์ํฉ๋๋ค.
- ์คํ ๋ฆฌ์ง ํด๋์ค. "ํ์ค"์ผ๋ก ๋์ญ์์ค. ์ด๋ ๋น์ฌ ์ฌ์ดํธ๋ฅผ ์์ฃผ ๋ฐฉ๋ฌธํ๋ฏ๋ก ์ฌ์ดํธ๋ฅผ ๊ตฌ์ฑํ๋ ํ์ผ์ด ์์ฃผ ๋ค์ด๋ก๋๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋ํ ํด๋น ํญ๋ชฉ์ ์ฑ๋ฅ ๋ฐ ๊ฒฐ์ ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค(๋งํฌ ์ฝ์ ).
'๋ฒํท ๋ง๋ค๊ธฐ'๋ฅผ ํด๋ฆญํ๋ฉด ๋ฒํท์ด ์์ฑ๋ฉ๋๋ค.
์ด์ ์ฌ์ดํธ๋ฅผ ๋ฒํท์ ์
๋ก๋ํด์ผ ํฉ๋๋ค. ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ ๊ทผ์ฒ์ ์๋ ํด๋๋ฅผ ์ฌ๋ ๊ฒ์
๋๋ค dist
ํธ๋ค์ ์ฌ์ฉํ์ฌ ์ฌ์ดํธ๋ฅผ ํ์ด์ง๋ก ์ง์ ๋๋๊ทธํ์ธ์. ์ด๋ "๊ฐ์ฒด ๋ก๋" ๋ฒํผ์ ํด๋ฆญํ๋ ๊ฒ๋ณด๋ค ๋ ํธ๋ฆฌํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ํด๋๊ฐ ์ ์ก๋์ง ์๊ณ ์ฌ๋ฐ๋ฅธ ์์๋ก ์๋์ผ๋ก ์์ฑํด์ผ ํ๊ธฐ ๋๋ฌธ์
๋๋ค.
๊ทธ๋์ ์ฌ์ดํธ๊ฐ ์คํ ๋ฆฌ์ง์ ๋ก๋ฉ๋์ด ์ฌ์ฉ์์๊ฒ ์น์ฌ์ดํธ์ฒ๋ผ ์คํ ๋ฆฌ์ง์ ์ ๊ทผํ ์ ์๋ ๊ธฐํ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
์ด๋ ๊ฒ ํ๋ ค๋ฉด ๋ฉ๋ด ์ผ์ชฝ์์ โ์น์ฌ์ดํธโ ํญ์ ํด๋ฆญํ์ธ์.
๋ฒํท์ ์ฌ์ดํธ๋ก ์ค์ ํ๋ ํ์ด์ง์์ "ํธ์คํ " ํญ์ ์ ํํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ฌ์ดํธ์ ๊ธฐ๋ณธ ํ์ด์ง(์ผ๋ฐ์ ์ผ๋ก index.html)๋ฅผ ๋ํ๋ ๋๋ค. SPA ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋ ๊ฒฝ์ฐ ๋ชจ๋ ์ค๋ฅ๋ ๊ธฐ๋ณธ ํ์ด์ง์์๋ ์ฒ๋ฆฌ๋๋ฏ๋ก ์ค๋ฅ ํ์ด์ง์ index.html๋ ํ์๋ฉ๋๋ค.
์ฐ๋ฆฌ ์ฌ์ดํธ์ ์ก์ธ์คํ ์ ์๋ ๋งํฌ๋ฅผ ์ฆ์ ํ์ธํฉ๋๋ค. ์ ์ฅ์ ํด๋ฆญํ์ธ์.
์ฝ 5๋ถ ํ ๋งํฌ๋ฅผ โโํด๋ฆญํ๋ฉด ์ด์ ๋ชจ๋ ์ฌ๋์ด ์ฐ๋ฆฌ ์ฌ์ดํธ๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
๋๊น์ง ์ฝ์ด์ฃผ์ ๋ชจ๋ ๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค! ์ด๊ฒ์ ๋์ ์ฒซ ๋ฒ์งธ ๊ธฐ์ฌ์ด๋ฉฐ ๋ค๋ฅธ Yandex ์๋น์ค์ ํ๋ฐํธ์๋ ๋ฐ ๋ฐฑ์๋ ๊ธฐ์ ๊ณผ์ ํตํฉ์ ๋ํด ๋ ์์ธํ ์ค๋ช ํ ๊ณํ์ ๋๋ค.
๋ค๋ฅธ Yandex ์๋น์ค ๋๋ ํ๋ ๊ฐ๋ฐ์์ Angular ์ฌ์ฉ์ ๋ํด ์์๋ณด๋ ๋ฐ ์ผ๋ง๋ ๊ด์ฌ์ด ์๋์ง ์๊ฒฌ์ ์ ์ด์ฃผ์ธ์.
์ถ์ฒ : habr.com