[Infra] 4-Tier μμΈ λΆμ 2νΈ: Tomcat 10κ³Ό JSP λμ μΉ μλΉμ€
μλ νμΈμ λ리λ! π«‘
μΈνλΌ μμΈ λΆμ μ리μ¦μ λ λ²μ§Έ μ£ΌμΈκ³΅μ μ°λ¦¬ λΈλ‘κ·Έμ μ¬μ₯μ΄μ, μλ° κΈ°λ° λμ νμ΄μ§λ₯Ό μ²λ¦¬νλ Tomcat 10 (WAS)μ λλ€. π
0. Tomcat 10 ꡬλ (Docker νκ²½)
μ°λ¦¬λ κ²½λνλ tomcat:10-jdk17-temurin μ΄λ―Έμ§λ₯Ό μ¬μ©νμ¬ WASλ₯Ό μ΄μν©λλ€. νΉν νΈμ€νΈμ μμ€ ν΄λλ₯Ό 컨ν
μ΄λ λ΄λΆμ webappsμ λ§μ΄νΈνμ¬ μμ€ μμ μ μ¦μ λ°μλλλ‘ κ΅¬μ±νμ΅λλ€.
# docker-compose.yml WAS μ€μ λΆ
was:
image: tomcat:10-jdk17-temurin
container_name: tomcat-was
restart: always
environment:
TZ: Asia/Seoul
volumes:
- ./tomcat/webapps:/usr/local/tomcat/webapps
- ./tomcat/postgresql-42.7.2.jar:/usr/local/tomcat/lib/postgresql-42.7.2.jar
- ./tomcat/jedis-5.1.0.jar:/usr/local/tomcat/lib/jedis-5.1.0.jar
networks:
- app-network1. WAS (Web Application Server)μ μν
Nginxκ° μ μ μΈ νμΌμ μ²λ¦¬νκ±°λ λ¬Έμ§κΈ° μν μ νλ€λ©΄, Tomcatμ JSP(Java Server Pages) νμΌμ μ½μ΄ μλ° λ‘μ§μ μ€ννκ³ DBμμ λ°μ΄ν°λ₯Ό κ°μ Έμ λ리λκ» λ³΄μ¬μ€ νλ©΄μ μ€μκ°μΌλ‘ λ§λ€μ΄λ΄λ μν μ ν©λλ€.
2. μΈλΆ λΌμ΄λΈλ¬λ¦¬ μ°λ
μ°λ¦¬ μλΉμ€κ° DB(PostgreSQL) λ° μΊμ(Redis)μ ν΅μ νκΈ° μν΄ νμμ μΈ λλΌμ΄λ²λ€μ lib ν΄λμ μ§μ λ§€ννμ¬ μ¬μ© μ€μ
λλ€.
- PostgreSQL JDBC: DB λ°μ΄ν° μ‘°νλ₯Ό μν λ€λ¦¬ μν
- Jedis: Redisλ₯Ό ν΅ν μ±λ₯ μ΅μ ν λ° μΈμ κ΄λ¦¬ 보쑰
3. μ΄μ ν: λ‘κ·Έ λͺ¨λν°λ§
WAS λ΄λΆμμ λ°μνλ μ€λ₯λ λ리λμ μ μ νλ¦μ νμ νκΈ° μν΄ μ€μκ° λ‘κ·Έ νμΈμ νμμ λλ€!
# μ€μκ° ν°μΊ£ λ‘κ·Έ νμΈ
docker logs -f tomcat-was---
π‘ κΉλΉμμ μ΄μ νλ§λ: ν°μΊ£ μ€μ (server.xml λ±)μ λ³κ²½νμ λλ docker restart tomcat-wasλ‘ μ»¨ν
μ΄λλ₯Ό μ¬μμν΄μ£Όλ κ²μ΄ κ°μ₯ νμ€ν©λλ€. π«‘
λ€μ νΈμμλ μ°λ¦¬μ μμ€ν λ°μ΄ν° μ μ₯μ, PostgreSQL 16μ λν΄ λ€λ€λ³΄κ² μ΅λλ€. πβ¨