From b177e98c233ebeab3c45c46c5a9977b743718598 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=9E=AC=EC=A4=91?= <126754298+m-a-king@users.noreply.github.com> Date: Sat, 15 Aug 2026 18:43:14 +0900 Subject: [PATCH] =?UTF-8?q?infra:=20=EB=B0=B0=ED=8F=AC=EA=B0=80=20Alloy=20?= =?UTF-8?q?=ED=94=84=EB=A1=9C=EB=B9=84=EC=A0=80=EB=8B=9D=EC=9D=84=20?= =?UTF-8?q?=ED=8F=AC=ED=95=A8=ED=95=98=EB=8F=84=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 이 박스의 Alloy 설정이 배포와 무관하게 옛 상태로 남던 문제. provision-observability.sh 는 필요한 일을 이미 다 하고 있었지만 배포가 호출하지 않아, 사람이 박스에서 수동 실행할 때만 반영됐다 - 실측 근거: infra#44 로 config 를 감축(수집 60s·누수 차단·collector 41→12)한 뒤 이 박스를 재배포해도 collector 41 그대로였다. 같은 변경이 적용된 core dev 박스는 12 - core 만 deploy 에 provision 단계가 있어 생긴 비대칭이다 - 앱 배포 앞에 둔다: core 와 순서를 맞추고, 관측이 깨진 채 앱만 올라가는 상태를 막는다 - 스크립트가 자기 완결적이라(공용 블록 fetch + 박스가 SSM 직접 조회) 러너가 넘길 인자·secret 이 없다 --- .github/workflows/deploy.yml | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 78dce64..b4b6c0c 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -86,10 +86,29 @@ jobs: host: ${{ secrets.EC2_HOST }} username: ${{ secrets.EC2_USER }} key: ${{ secrets.EC2_SSH_KEY }} - source: "shared-infra/blocks/run_container.sh,shared-infra/blocks/healthcheck.sh,shared-infra/blocks/slot_decide.sh,shared-infra/blocks/slot_switch.sh,infra/nginx/extractor.conf" + source: "shared-infra/blocks/run_container.sh,shared-infra/blocks/healthcheck.sh,shared-infra/blocks/slot_decide.sh,shared-infra/blocks/slot_switch.sh,infra/nginx/extractor.conf,infra/scripts/provision-observability.sh" target: "/tmp/piki-blocks" strip_components: 2 + # 관측 수집기(Alloy)를 매 배포 갱신한다. 이 단계가 없던 동안 공용 config(TeamPiKi/infra + # blocks/alloy)를 고쳐도 이 박스에는 영영 반영되지 않았다 - 스크립트는 있었지만 사람이 박스에서 + # 수동 실행할 때만 돌았기 때문이다(2026-08-13 실측: infra#44 감축 후에도 collector 41 그대로, + # 같은 변경이 적용된 core dev 박스는 12). core 가 provision-runtime.sh 로 하는 일과 같은 결이다. + # + # 앱 배포 앞에 둔다: 순서를 core 와 맞추고, 관측이 깨진 채 앱만 새로 올라가는 상태를 막는다. + # 스크립트는 자기 완결적이라(공용 블록을 raw.githubusercontent 에서 직접 fetch, 자격은 박스가 + # SSM 공유 경로에서 직접 읽음) 러너가 넘길 인자·secret 이 없다. + - name: Provision observability (Alloy) + uses: appleboy/ssh-action@v1 + with: + host: ${{ secrets.EC2_HOST }} + username: ${{ secrets.EC2_USER }} + key: ${{ secrets.EC2_SSH_KEY }} + script: | + set -euo pipefail + chmod +x /tmp/piki-blocks/provision-observability.sh + /tmp/piki-blocks/provision-observability.sh + - name: Deploy (SSM env pull + blue-green slot + nginx switch) uses: appleboy/ssh-action@v1 env: