웹, 앱 및 DB 계층 조정하기
다중 계층 배포 순서를 조정합니다.
웹, 앱 및 DB 계층 조정하기은(는) CoddyKit의 무료 DevOps Bootcamp 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 DevOps Bootcamp 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.
실제 앱에는 계층이 있습니다
일반적인 스택은 계층으로 나뉩니다. 웹 서버, 앱 서버, 데이터베이스가 그 예입니다. 각 계층에는 고유한 역할과 배포 순서가 있습니다. 🏗️
순서가 중요합니다
일반적으로 먼저 데이터베이스를 시작하고, 그다음 앱을 시작한 뒤 웹 계층을 시작합니다. 계층을 순서와 다르게 구성하면 배포 과정이 중단됩니다.
계층마다 플레이 하나씩
하나의 플레이북에서 각 계층에 고유한 play를 지정합니다. 플레이는 위에서 아래로 실행되므로, 플레이의 순서가 배포 순서를 정의합니다.
- hosts: db
roles: [postgres]
- hosts: app
roles: [backend]
- hosts: web
roles: [nginx]그룹은 계층에 대응합니다
db, app, web과 같은 인벤토리 그룹은 각 플레이가 대상으로 삼는 호스트와 일치합니다. 인벤토리는 오케스트레이션의 기반입니다.
[db]
db01
[app]
app01
app02
[web]
web01
web02계층 간에 데이터 전달하기
웹 계층에는 앱 서버의 IP 주소가 필요한 경우가 많습니다. hostvars와 그룹을 사용해 이를 읽고 한 계층을 다른 계층에 연결합니다.
backends: "{{ groups['app'] | map('extract', hostvars, 'ansible_host') | list }}"계층이 준비될 때까지 기다리기
앱을 시작하기 전에 wait_for를 사용해 데이터베이스 포트가 열려 있는지 확인합니다. 이렇게 하면 느린 서비스보다 작업이 앞서 진행되는 것을 막을 수 있습니다.
- ansible.builtin.wait_for:
host: db01
port: 5432
timeout: 60마이그레이션은 한 번만 실행하기
데이터베이스 스키마 변경은 한 번만 실행되어야 합니다. run_once를 위임 대상과 함께 사용하면 앱 노드 하나가 공유 데이터베이스를 마이그레이션합니다.
- ansible.builtin.command: ./migrate.sh
run_once: true
delegate_to: app01delegate_to로 계층 간 연결하기
앱 플레이는 작업을 웹 호스트에 위임하여 웹 계층에 접근할 수 있습니다. 하나의 플레이북으로 모든 계층을 조정할 수 있습니다.
대상별 실행을 위해 계층에 태그 지정하기
플레이에 db, app, web과 같은 태그를 추가하면 한 계층만 변경되었을 때 --tags를 사용해 해당 계층만 다시 배포할 수 있습니다.
- hosts: web
tags: web
roles: [nginx]스택 전체에서 빠르게 실패 처리하기
any_errors_fatal을 설정하면 db 계층에서 오류가 발생했을 때 전체 실행이 중단됩니다. 따라서 앱 계층이 문제가 있는 계층을 대상으로 배포되는 것을 막을 수 있습니다.
- hosts: db
any_errors_fatal: true
roles: [postgres]하나의 파일에 담은 전체 스택
여러 플레이로 구성된 플레이북은 배포 레시피가 됩니다. 모든 계층을 순서대로 정의하고 계층 간 연결도 한곳에 담을 수 있습니다.
빠른 확인
계층이 어떤 순서로 실행되는지 확인해 보겠습니다.
복습
배포 순서에 따라 계층마다 play 하나씩을 구성하고, 그룹, hostvars, wait_for, 위임을 통해 서로 연결하여 계층을 조정합니다. ✅
자주 묻는 질문
“웹, 앱 및 DB 계층 조정하기” 강의는 무료인가요?
네 — “웹, 앱 및 DB 계층 조정하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 DevOps Bootcamp 강의 전체를 잠금 해제할 수 있습니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.
“웹, 앱 및 DB 계층 조정하기”에서 뭘 배우나요?
다중 계층 배포 순서를 조정합니다. 브라우저에서 직접 실행하는 실습 코드로 DevOps Bootcamp을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
DevOps Bootcamp을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 DevOps Bootcamp은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“웹, 앱 및 DB 계층 조정하기” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 DevOps Bootcamp 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 DevOps Bootcamp 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.