Skip to content

Commit 5b7dd0e

Browse files
authored
Merge pull request #187 from Runnect/dev
[Fix] - deploy.sh 진단 μ΅œμ ν™” (logTail)
2 parents 14e835e + a3d6f16 commit 5b7dd0e

2 files changed

Lines changed: 39 additions & 76 deletions

File tree

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
name: EC2-READ-DEPLOY-LOG
1+
name: EC2-READ-LOGTAIL
22

33
on:
44
workflow_dispatch:
55

66
jobs:
77
read-log:
8-
name: Read CodeDeploy Logs
8+
name: Read CodeDeploy LogTail
99
runs-on: ubuntu-latest
1010

1111
steps:
@@ -16,38 +16,39 @@ jobs:
1616
aws-secret-access-key: ${{ secrets.AWS_PROD_SECRET_KEY }}
1717
aws-region: ap-northeast-2
1818

19-
- name: Get deployment lifecycle events
19+
- name: Get latest deployment logTail
2020
run: |
21-
echo "=== 졜근 배포 λͺ©λ‘ (μ΅œλŒ€ 5개) ==="
21+
echo "=== 졜근 배포 λͺ©λ‘ ==="
2222
DEPLOYMENTS=$(aws deploy list-deployments \
2323
--application-name runnect-prod-codedeploy \
2424
--deployment-group-name runnect-prod-codedeploy-group \
25-
--query "deployments[:5]" \
25+
--query "deployments[:3]" \
2626
--output text 2>/dev/null)
2727
echo "Deployments: $DEPLOYMENTS"
2828
2929
for DEP_ID in $DEPLOYMENTS; do
3030
echo ""
3131
echo "================================================"
3232
echo "=== Deployment: $DEP_ID ==="
33-
echo "================================================"
3433
35-
aws deploy get-deployment --deployment-id "$DEP_ID" \
36-
--query "deploymentInfo.{status:status, createTime:createTime, completeTime:completeTime, error:errorInformation}" \
37-
--output json 2>&1
34+
DEP_STATUS=$(aws deploy get-deployment --deployment-id "$DEP_ID" \
35+
--query "deploymentInfo.status" --output text 2>/dev/null)
36+
DEP_TIME=$(aws deploy get-deployment --deployment-id "$DEP_ID" \
37+
--query "deploymentInfo.createTime" --output text 2>/dev/null)
38+
echo "Status: $DEP_STATUS | Created: $DEP_TIME"
3839
39-
echo ""
40-
echo "--- Instance lifecycle events ---"
4140
INSTANCES=$(aws deploy list-deployment-instances \
4241
--deployment-id "$DEP_ID" \
4342
--query "instancesList" \
4443
--output text 2>/dev/null)
4544
4645
for INST in $INSTANCES; do
47-
echo "Instance: $INST"
46+
echo ""
47+
echo "--- Instance: $INST ---"
4848
aws deploy get-deployment-instance \
4949
--deployment-id "$DEP_ID" \
5050
--instance-id "$INST" \
51+
--query "instanceSummary.lifecycleEvents[].{name:lifecycleEventName, status:status, logTail:diagnostics.logTail}" \
5152
--output json 2>&1
5253
done
5354
done

β€Žscripts/deploy.shβ€Ž

Lines changed: 26 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ echo "> ν˜„μž¬ ꡬ동쀑인 Set 확인"
1111
CURRENT_PROFILE=$(curl -s http://localhost/profile)
1212
echo "> $CURRENT_PROFILE"
1313

14-
# 쉬고 μžˆλŠ” set μ°ΎκΈ°: set1이 μ‚¬μš©μ€‘μ΄λ©΄ set2κ°€ 쉬고 있고, λ°˜λŒ€λ©΄ set1이 쉬고 있음
1514
if [ $CURRENT_PROFILE == set1 ]
1615
then
1716
IDLE_PROFILE=set2
@@ -49,7 +48,6 @@ echo "> $IDLE_PROFILE 배포"
4948
nohup java -jar -Duser.timezone=Asia/Seoul -Dspring.profiles.active=$IDLE_PROFILE $IDLE_APPLICATION_PATH >> /home/ubuntu/app/nohup.out 2>&1 &
5049

5150
echo "> $IDLE_PROFILE 10초 ν›„ Health check μ‹œμž‘"
52-
echo "> curl -s http://localhost:$IDLE_PORT/health "
5351
sleep 10
5452

5553
for retry_count in {1..10}
@@ -58,95 +56,59 @@ do
5856
up_count=$(echo $response | grep 'UP' | wc -l)
5957

6058
if [ $up_count -ge 1 ]
61-
then # $up_count >= 1 ("UP" λ¬Έμžμ—΄μ΄ μžˆλŠ”μ§€ 검증)
59+
then
6260
echo "> Health check 성곡"
6361
break
6462
else
6563
echo "> Health check의 응닡을 μ•Œ 수 μ—†κ±°λ‚˜ ν˜Ήμ€ statusκ°€ UP이 μ•„λ‹™λ‹ˆλ‹€."
66-
echo "> Health check: ${response}"
6764
fi
6865

6966
if [ $retry_count -eq 10 ]
7067
then
71-
echo "> Health check μ‹€νŒ¨. "
72-
echo "> Nginx에 μ—°κ²°ν•˜μ§€ μ•Šκ³  배포λ₯Ό μ’…λ£Œν•©λ‹ˆλ‹€."
68+
echo "> Health check μ‹€νŒ¨."
7369
exit 1
7470
fi
7571

76-
echo "> Health check μ—°κ²° μ‹€νŒ¨. μž¬μ‹œλ„..."
7772
sleep 10
7873
done
7974

80-
echo "> Nginx μƒνƒœ 확인 및 볡ꡬ"
75+
echo "> Nginx 볡ꡬ"
8176
sudo systemctl stop nginx 2>/dev/null || true
8277
sleep 1
8378
sudo systemctl start nginx
8479
sleep 2
85-
if sudo systemctl is-active --quiet nginx; then
86-
echo "> Nginx μ‹œμž‘ 성곡"
87-
else
88-
echo "> Nginx μ‹œμž‘ μ‹€νŒ¨. κ°•μ œ μž¬μ‹œμž‘ μ‹œλ„..."
89-
sudo killall nginx 2>/dev/null || true
90-
sleep 1
91-
sudo nginx
92-
sleep 2
93-
fi
9480

95-
echo "> λ°©ν™”λ²½ κ·œμΉ™ μ΄ˆκΈ°ν™” (μΈλ°”μš΄λ“œ νŠΈλž˜ν”½ ν—ˆμš©)"
96-
# UFW λΉ„ν™œμ„±ν™”
81+
echo "> λ°©ν™”λ²½ μ΄ˆκΈ°ν™”"
9782
sudo ufw disable 2>/dev/null || true
98-
99-
# iptables μ΄ˆκΈ°ν™” - λͺ¨λ“  νŠΈλž˜ν”½ ν—ˆμš©
10083
sudo iptables -P INPUT ACCEPT 2>/dev/null || true
10184
sudo iptables -P FORWARD ACCEPT 2>/dev/null || true
10285
sudo iptables -P OUTPUT ACCEPT 2>/dev/null || true
10386
sudo iptables -F 2>/dev/null || true
104-
sudo iptables -X 2>/dev/null || true
10587

10688
echo "> μŠ€μœ„μΉ­"
10789
sleep 10
10890
/home/ubuntu/app/nonstop/switch.sh
10991

110-
echo "> 배포 μ™„λ£Œ. 진단 정보 좜λ ₯ (logTail 캑처용)..."
111-
echo "=========================================="
112-
echo "=== [DIAG] Public IP ==="
113-
curl -s --connect-timeout 3 http://169.254.169.254/latest/meta-data/public-ipv4 2>/dev/null || echo "메타데이터 μ ‘κ·Ό λΆˆκ°€"
114-
echo ""
115-
echo "=== [DIAG] Instance ID ==="
116-
curl -s --connect-timeout 3 http://169.254.169.254/latest/meta-data/instance-id 2>/dev/null || echo "메타데이터 μ ‘κ·Ό λΆˆκ°€"
117-
echo ""
118-
echo "=== [DIAG] Security Groups ==="
119-
curl -s --connect-timeout 3 http://169.254.169.254/latest/meta-data/security-groups 2>/dev/null || echo "메타데이터 μ ‘κ·Ό λΆˆκ°€"
120-
echo ""
121-
echo "=== [DIAG] Listening Ports ==="
122-
sudo ss -tlnp 2>/dev/null | head -20
123-
echo ""
124-
echo "=== [DIAG] Nginx Status ==="
125-
sudo systemctl is-active nginx 2>&1
126-
echo ""
127-
echo "=== [DIAG] Java Processes ==="
128-
pgrep -a java 2>/dev/null | head -5
129-
echo ""
130-
echo "=== [DIAG] iptables ==="
131-
sudo iptables -L -n 2>/dev/null | head -20
132-
echo ""
133-
echo "=== [DIAG] UFW Status ==="
134-
sudo ufw status 2>/dev/null
135-
echo ""
136-
echo "=== [DIAG] Network Interfaces ==="
137-
ip addr show 2>/dev/null | grep -E "inet |state" | head -10
138-
echo ""
139-
echo "=== [DIAG] Localhost Tests ==="
140-
echo "8081: $(curl -s -o /dev/null -w '%{http_code}' http://localhost:8081/actuator/health 2>/dev/null)"
141-
echo "8082: $(curl -s -o /dev/null -w '%{http_code}' http://localhost:8082/actuator/health 2>/dev/null)"
142-
echo "80: $(curl -s -o /dev/null -w '%{http_code}' http://localhost/actuator/health 2>/dev/null)"
143-
echo "profile: $(curl -s http://localhost/profile 2>/dev/null)"
144-
echo ""
145-
echo "=== [DIAG] Memory ==="
146-
free -h 2>/dev/null | head -3
147-
echo ""
148-
echo "=== [DIAG] nohup.out (last 20 lines) ==="
149-
tail -20 /home/ubuntu/app/nohup.out 2>/dev/null
150-
echo "=========================================="
151-
echo "> 진단 좜λ ₯ μ™„λ£Œ. μ˜λ„μ  μ‹€νŒ¨ (logTail 캑처)..."
92+
echo "======= DIAG START ======="
93+
echo "[IP] $(curl -s --connect-timeout 3 http://169.254.169.254/latest/meta-data/public-ipv4 2>/dev/null || echo NONE)"
94+
echo "[INST] $(curl -s --connect-timeout 3 http://169.254.169.254/latest/meta-data/instance-id 2>/dev/null || echo NONE)"
95+
echo "[SG] $(curl -s --connect-timeout 3 http://169.254.169.254/latest/meta-data/security-groups 2>/dev/null || echo NONE)"
96+
echo "[MAC] $(curl -s --connect-timeout 3 http://169.254.169.254/latest/meta-data/mac 2>/dev/null || echo NONE)"
97+
MAC=$(curl -s --connect-timeout 3 http://169.254.169.254/latest/meta-data/mac 2>/dev/null)
98+
if [ -n "$MAC" ]; then
99+
echo "[VPC] $(curl -s --connect-timeout 3 http://169.254.169.254/latest/meta-data/network/interfaces/macs/$MAC/vpc-id 2>/dev/null || echo NONE)"
100+
echo "[SUBNET] $(curl -s --connect-timeout 3 http://169.254.169.254/latest/meta-data/network/interfaces/macs/$MAC/subnet-id 2>/dev/null || echo NONE)"
101+
echo "[SG-IDS] $(curl -s --connect-timeout 3 http://169.254.169.254/latest/meta-data/network/interfaces/macs/$MAC/security-group-ids 2>/dev/null || echo NONE)"
102+
fi
103+
echo "[NGINX] $(sudo systemctl is-active nginx 2>&1)"
104+
echo "[PORTS] $(sudo ss -tlnp 2>/dev/null | grep -E ':(80|8081|8082) ' || echo NONE)"
105+
echo "[JAVA] $(pgrep -a java 2>/dev/null | head -2 || echo NONE)"
106+
echo "[UFW] $(sudo ufw status 2>/dev/null | head -1)"
107+
echo "[IPT] $(sudo iptables -S 2>/dev/null | head -5)"
108+
echo "[LOCAL80] $(curl -s -o /dev/null -w '%{http_code}' http://localhost/actuator/health 2>/dev/null)"
109+
echo "[LOCAL8081] $(curl -s -o /dev/null -w '%{http_code}' http://localhost:8081/actuator/health 2>/dev/null)"
110+
echo "[LOCAL8082] $(curl -s -o /dev/null -w '%{http_code}' http://localhost:8082/actuator/health 2>/dev/null)"
111+
echo "[PROFILE] $(curl -s http://localhost/profile 2>/dev/null)"
112+
echo "[MEM] $(free -m 2>/dev/null | grep Mem | awk '{print $2"M total, "$3"M used, "$4"M free"}')"
113+
echo "======= DIAG END ======="
152114
exit 1

0 commit comments

Comments
Β (0)