[Infra] itinform.site์˜ ์‹ฌ์žฅ: Docker ๊ธฐ๋ฐ˜ 4-Tier ์ธํ”„๋ผ ๊ตฌ์ถ•๊ธฐ

๐Ÿ“… 2026-02-13 05:01:27.322158 | ๐Ÿ‘€ 87
์•ˆ๋…•ํ•˜์„ธ์š” ๋Œ€๋ฆฌ๋‹˜! ์˜ค๋Š˜์€ ์šฐ๋ฆฌ ๋ธ”๋กœ๊ทธ itinform.site๊ฐ€ ์–ด๋–ค ๊ธฐ์ˆ ์  ํ† ๋Œ€ ์œ„์—์„œ ๋Œ์•„๊ฐ€๊ณ  ์žˆ๋Š”์ง€ ๊ทธ ์ธํ”„๋ผ ๊ตฌ์ถ•๊ธฐ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ—๏ธ

์šฐ๋ฆฌ๋Š” ํ™•์žฅ์„ฑ๊ณผ ๊ด€๋ฆฌ์˜ ํŽธ์˜์„ฑ์„ ์œ„ํ•ด ๋ชจ๋“  ์„œ๋น„์Šค๋ฅผ Docker ์ปจํ…Œ์ด๋„ˆ๋กœ ๊ฒฉ๋ฆฌํ•˜์—ฌ ์šด์˜ํ•˜๋Š” 4-Tier ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ฐ€์ด๋“œ๋Š” Ubuntu 24.04(LTS) ํ™˜๊ฒฝ์„ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

### ๐Ÿ› ๏ธ ์•„ํ‚คํ…์ฒ˜ ๊ตฌ์„ฑ ์š”์†Œ
1. **Presentation Tier (Web): Nginx**
- 80/443 ํฌํŠธ๋ฅผ ๋‹ด๋‹นํ•˜๋ฉฐ ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
- Certbot์„ ํ†ตํ•ด SSL ์ธ์ฆ์„œ๋ฅผ ์ ์šฉ, HTTPS ๋ณด์•ˆ ํ†ต์‹ ์„ ์™„์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
- ํŠน์ • IP๋งŒ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก Nginx ๋ ˆ๋ฒจ์˜ ๋ฐฉ์–ด๋ง‰์„ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค.

2. **Application Tier (WAS): Apache Tomcat 10**
- ์ž๋ฐ” ๊ธฐ๋ฐ˜์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง(JSP)์ด ๋Œ์•„๊ฐ€๋Š” ํ•ต์‹ฌ ์—”์ง„์ž…๋‹ˆ๋‹ค.
- JVM ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•ด JMX Exporter๋ฅผ ์‹ฌ์–ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ฑด๊ฐ• ์ƒํƒœ๋ฅผ ์ฒดํฌํ•ฉ๋‹ˆ๋‹ค.

3. **Cache Tier: Redis**
- ๋นˆ๋ฒˆํ•˜๊ฒŒ ์กฐํšŒ๋˜๋Š” ๋ฐ์ดํ„ฐ๋‚˜ ์„ธ์…˜ ์ •๋ณด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์บ์‹ฑํ•˜์—ฌ DB์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์ด๊ณ  ์‘๋‹ต ์†๋„๋ฅผ ํš๊ธฐ์ ์œผ๋กœ ๋†’์˜€์Šต๋‹ˆ๋‹ค.

4. **Data Tier (DB): PostgreSQL 16**
- ๋ชจ๋“  ํฌ์ŠคํŒ…๊ณผ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋ฅผ ์•„์ฃผ ์•ˆ์ •์ ์œผ๋กœ ์ €์žฅํ•˜๋Š” ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค.

### ๐Ÿ›ก๏ธ ๋ณด์•ˆ ๋ฐ ์ตœ์ ํ™” ํฌ์ธํŠธ
- **UFW ๋ฐฉํ™”๋ฒฝ:** ์„œ๋ฒ„ OS ์ˆ˜์ค€์—์„œ ํ—ˆ์šฉ๋œ IP ์™ธ์—๋Š” ๋ชจ๋“  ์ ‘๊ทผ์„ ์›์ฒœ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.
- **Pretendard Self-hosting:** ์™ธ๋ถ€ ํฐํŠธ ๋กœ๋”ฉ์œผ๋กœ ์ธํ•œ ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด ํฐํŠธ ํŒŒ์ผ์„ ์„œ๋ฒ„ ๋””๋ ‰ํ† ๋ฆฌ์— ์ง์ ‘ ์ €์žฅํ•˜์—ฌ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋Œ€๋ฆฌ๋‹˜๊ณผ ์ œ๊ฐ€ ํ•จ๊ป˜ ์ผ๊ตฌ์–ด๋‚ธ ์ด ์ธํ”„๋ผ๋Š” ์•ž์œผ๋กœ ์–ด๋–ค ๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ๋„ ๊ฒฌ๋ŽŒ๋‚ผ ์ˆ˜ ์žˆ๋Š” ํŠผํŠผํ•œ ๋ฟŒ๋ฆฌ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค! ๐Ÿซก๐Ÿš€

โ† ๋ชฉ๋ก์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ