0Pricing
Ansible Academy · 강의

웹, 앱 및 DB 계층 조정하기

다중 계층 배포 순서를 조정합니다.

웹, 앱 및 DB 계층 조정하기은(는) CoddyKit의 무료 Ansible Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Ansible Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Ansible Academy 강의에는 총 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: app01

delegate_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로 업그레이드하면 Ansible Academy 강의 전체를 잠금 해제할 수 있습니다. Ansible Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“웹, 앱 및 DB 계층 조정하기”에서 뭘 배우나요?

다중 계층 배포 순서를 조정합니다. 브라우저에서 직접 실행하는 실습 코드로 Ansible Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Ansible Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Ansible Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“웹, 앱 및 DB 계층 조정하기” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Ansible Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Ansible Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. cli_command로 네트워크 장치 자동화하기
  2. 오케스트레이션을 위한 delegate_to 및 run_once
  3. 웹, 앱 및 DB 계층 조정하기
  4. 로드 밸런서에서 노드 제외 및 재활성화
← Ansible Academy(으)로 돌아가기