Skip to content

Commit b5cf9cb

Browse files
authored
Merge pull request #183 from Runnect/dev
[Fix] - deploy.sh Nginx μžλ™ μž¬μ‹œμž‘ μΆ”κ°€
2 parents b0e895e + e11a7c7 commit b5cf9cb

2 files changed

Lines changed: 121 additions & 0 deletions

File tree

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
name: EC2-RECOVERY
2+
3+
on:
4+
workflow_dispatch:
5+
6+
jobs:
7+
recover:
8+
name: Recover Server
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- name: Configure AWS credentials
13+
uses: aws-actions/configure-aws-credentials@v1
14+
with:
15+
aws-access-key-id: ${{ secrets.AWS_PROD_ACCESS_KEY }}
16+
aws-secret-access-key: ${{ secrets.AWS_PROD_SECRET_KEY }}
17+
aws-region: ap-northeast-2
18+
19+
- name: Check IAM identity
20+
run: |
21+
echo "=== IAM 정보 확인 ==="
22+
aws sts get-caller-identity || echo "STS 호좜 μ‹€νŒ¨"
23+
24+
- name: Check CodeDeploy deployments
25+
run: |
26+
echo "=== 졜근 배포 μƒνƒœ 확인 ==="
27+
aws deploy list-deployments \
28+
--application-name runnect-prod-codedeploy \
29+
--deployment-group-name runnect-prod-codedeploy-group \
30+
--include-only-statuses "Succeeded,Failed,InProgress" \
31+
--query "deployments[:3]" \
32+
--output text || echo "배포 λͺ©λ‘ 쑰회 μ‹€νŒ¨"
33+
34+
LATEST=$(aws deploy list-deployments \
35+
--application-name runnect-prod-codedeploy \
36+
--deployment-group-name runnect-prod-codedeploy-group \
37+
--query "deployments[0]" \
38+
--output text 2>/dev/null)
39+
40+
if [ -n "$LATEST" ] && [ "$LATEST" != "None" ]; then
41+
echo ""
42+
echo "=== μ΅œμ‹  배포 상세 ==="
43+
aws deploy get-deployment --deployment-id "$LATEST" \
44+
--query "deploymentInfo.{status:status, createTime:createTime, completeTime:completeTime, errorInfo:errorInformation}" \
45+
--output json
46+
fi
47+
48+
- name: Trigger new CodeDeploy deployment
49+
run: |
50+
echo "=== μƒˆ CodeDeploy 배포 트리거 ==="
51+
DEPLOYMENT_ID=$(aws deploy create-deployment \
52+
--application-name runnect-prod-codedeploy \
53+
--deployment-group-name runnect-prod-codedeploy-group \
54+
--file-exists-behavior OVERWRITE \
55+
--s3-location bucket=runnect-prod-bucket,bundleType=zip,key=runnect_prod_server.zip \
56+
--region ap-northeast-2 \
57+
--query "deploymentId" \
58+
--output text)
59+
60+
echo "Deployment ID: $DEPLOYMENT_ID"
61+
62+
echo "배포 μ™„λ£Œ λŒ€κΈ° (μ΅œλŒ€ 5λΆ„)..."
63+
for i in $(seq 1 30); do
64+
STATUS=$(aws deploy get-deployment --deployment-id "$DEPLOYMENT_ID" \
65+
--query "deploymentInfo.status" --output text 2>/dev/null)
66+
echo "[$i/30] Status: $STATUS"
67+
68+
if [ "$STATUS" = "Succeeded" ]; then
69+
echo "배포 성곡!"
70+
break
71+
elif [ "$STATUS" = "Failed" ] || [ "$STATUS" = "Stopped" ]; then
72+
echo "배포 μ‹€νŒ¨! 상세 정보:"
73+
aws deploy get-deployment --deployment-id "$DEPLOYMENT_ID" \
74+
--query "deploymentInfo.errorInformation" --output json
75+
break
76+
fi
77+
sleep 10
78+
done
79+
80+
- name: Health check
81+
run: |
82+
echo "μ„œλ²„ ν—¬μŠ€ 체크 (μ΅œλŒ€ 3λΆ„ λŒ€κΈ°)..."
83+
for i in $(seq 1 18); do
84+
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 5 --max-time 10 http://3.35.195.11/actuator/health 2>/dev/null || echo "000")
85+
echo "[$i/18] HTTP: $HTTP_CODE"
86+
if [ "$HTTP_CODE" = "200" ]; then
87+
echo "μ„œλ²„ 볡ꡬ μ™„λ£Œ!"
88+
exit 0
89+
fi
90+
sleep 10
91+
done
92+
93+
echo ""
94+
echo "=== ν¬νŠΈλ³„ 체크 ==="
95+
for PORT in 80 8081 8082; do
96+
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" --connect-timeout 5 --max-time 10 http://3.35.195.11:$PORT/actuator/health 2>/dev/null || echo "000")
97+
echo "Port $PORT: HTTP $HTTP_CODE"
98+
done
99+
echo "WARNING: μ„œλ²„κ°€ 아직 μ‘λ‹΅ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€."

β€Žscripts/deploy.shβ€Ž

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,28 @@ do
7777
sleep 10
7878
done
7979

80+
echo "> Nginx μƒνƒœ 확인"
81+
if ! sudo systemctl is-active --quiet nginx; then
82+
echo "> Nginxκ°€ μ€‘μ§€λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œμž‘ν•©λ‹ˆλ‹€."
83+
sudo systemctl start nginx
84+
sleep 2
85+
if sudo systemctl is-active --quiet nginx; then
86+
echo "> Nginx μž¬μ‹œμž‘ 성곡"
87+
else
88+
echo "> Nginx μž¬μ‹œμž‘ μ‹€νŒ¨. μƒνƒœ:"
89+
sudo systemctl status nginx
90+
fi
91+
else
92+
echo "> Nginx 정상 ꡬ동 쀑"
93+
fi
94+
8095
echo "> μŠ€μœ„μΉ­"
8196
sleep 10
8297
/home/ubuntu/app/nonstop/switch.sh
98+
99+
echo "> 배포 μ™„λ£Œ. μ΅œμ’… μƒνƒœ 확인"
100+
echo "> Nginx: $(sudo systemctl is-active nginx)"
101+
echo "> Java ν”„λ‘œμ„ΈμŠ€:"
102+
pgrep -a java || echo "> Java ν”„λ‘œμ„ΈμŠ€ μ—†μŒ"
103+
echo "> 포트 λ¦¬μŠ€λ‹:"
104+
sudo ss -tlnp | grep -E ':(80|8081|8082) ' || echo "> ν•΄λ‹Ή 포트 λ¦¬μŠ€λ‹ μ—†μŒ"

0 commit comments

Comments
Β (0)