Skip to content

Commit f3921c6

Browse files
committed
chore: S3 진단 파일 읽기 워크플로우
1 parent e451281 commit f3921c6

1 file changed

Lines changed: 35 additions & 66 deletions

File tree

.github/workflows/ec2-reboot.yml

Lines changed: 35 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
name: EC2-DIAGNOSTIC
1+
name: EC2-READ-DIAGNOSTIC
22

33
on:
44
workflow_dispatch:
55

66
jobs:
7-
diagnose:
8-
name: Diagnose EC2 Instance
7+
read-diag:
8+
name: Read S3 Diagnostic
99
runs-on: ubuntu-latest
1010

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

19-
- name: Check IAM identity and permissions
19+
- name: Check latest CodeDeploy deployment
2020
run: |
21-
echo "=== IAM 정보 ==="
22-
aws sts get-caller-identity 2>&1 || true
23-
24-
echo ""
25-
echo "=== IAM 정책 확인 ==="
26-
ACCOUNT=$(aws sts get-caller-identity --query Account --output text 2>/dev/null)
27-
USER_NAME=$(aws sts get-caller-identity --query Arn --output text 2>/dev/null | awk -F'/' '{print $NF}')
28-
echo "Account: $ACCOUNT"
29-
echo "User: $USER_NAME"
30-
31-
echo ""
32-
echo "=== Attached Policies ==="
33-
aws iam list-attached-user-policies --user-name "$USER_NAME" 2>&1 || echo "IAM 정책 조회 권한 없음"
34-
35-
echo ""
36-
echo "=== Inline Policies ==="
37-
aws iam list-user-policies --user-name "$USER_NAME" 2>&1 || echo "IAM 인라인 정책 조회 권한 없음"
38-
39-
- name: CodeDeploy deployment group info
40-
run: |
41-
echo "=== 배포 그룹 상세 ==="
42-
aws deploy get-deployment-group \
43-
--application-name runnect-prod-codedeploy \
44-
--deployment-group-name runnect-prod-codedeploy-group \
45-
--output json 2>&1 || echo "배포 그룹 조회 실패"
46-
47-
- name: Latest deployment details
48-
run: |
49-
echo "=== 최근 배포 목록 ==="
5021
LATEST=$(aws deploy list-deployments \
5122
--application-name runnect-prod-codedeploy \
5223
--deployment-group-name runnect-prod-codedeploy-group \
5324
--query "deployments[0]" \
5425
--output text 2>/dev/null)
5526
echo "Latest deployment: $LATEST"
5627
57-
if [ -n "$LATEST" ] && [ "$LATEST" != "None" ]; then
58-
echo ""
59-
echo "=== 배포 상세 ==="
60-
aws deploy get-deployment --deployment-id "$LATEST" --output json 2>&1
61-
62-
echo ""
63-
echo "=== 배포 인스턴스 목록 ==="
64-
aws deploy list-deployment-instances --deployment-id "$LATEST" --output json 2>&1 || echo "인스턴스 목록 조회 실패"
65-
66-
echo ""
67-
echo "=== 배포 타겟 상세 ==="
68-
INSTANCE_IDS=$(aws deploy list-deployment-instances --deployment-id "$LATEST" --query "instancesList" --output text 2>/dev/null)
69-
for INST in $INSTANCE_IDS; do
70-
echo "--- Instance: $INST ---"
71-
aws deploy get-deployment-instance --deployment-id "$LATEST" --instance-id "$INST" --output json 2>&1 || echo "조회 실패"
72-
done
73-
fi
28+
aws deploy get-deployment --deployment-id "$LATEST" \
29+
--query "deploymentInfo.{status:status, createTime:createTime, completeTime:completeTime}" \
30+
--output json 2>&1
7431
75-
- name: Check SSM access
32+
- name: List S3 diagnostics
7633
run: |
77-
echo "=== SSM 인스턴스 목록 ==="
78-
aws ssm describe-instance-information --output json 2>&1 || echo "SSM 권한 없음"
79-
80-
- name: Try EC2 describe (may fail)
81-
run: |
82-
echo "=== EC2 인스턴스 조회 시도 ==="
83-
aws ec2 describe-instances --output json 2>&1 || echo "EC2 권한 없음"
34+
echo "=== S3 diagnostics 폴더 ==="
35+
aws s3 ls s3://runnect-prod-bucket/diagnostics/ 2>&1 || echo "diagnostics 폴더 없거나 접근 불가"
8436
8537
echo ""
86-
echo "=== Elastic IP 조회 시도 ==="
87-
aws ec2 describe-addresses --public-ips 3.35.195.11 2>&1 || echo "Elastic IP 조회 실패"
38+
echo "=== S3 버킷 전체 목록 ==="
39+
aws s3 ls s3://runnect-prod-bucket/ 2>&1 || echo "S3 접근 실패"
8840
89-
echo ""
90-
echo "=== 보안 그룹 조회 시도 ==="
91-
aws ec2 describe-security-groups 2>&1 || echo "보안 그룹 조회 실패"
41+
- name: Download and display diagnostic file
42+
run: |
43+
echo "=== 진단 파일 다운로드 시도 ==="
44+
LATEST_FILE=$(aws s3 ls s3://runnect-prod-bucket/diagnostics/ --recursive 2>/dev/null | sort | tail -1 | awk '{print $4}')
9245
93-
- name: Check S3 bucket
46+
if [ -n "$LATEST_FILE" ]; then
47+
echo "Found: $LATEST_FILE"
48+
aws s3 cp "s3://runnect-prod-bucket/$LATEST_FILE" /tmp/diagnostic.txt 2>&1
49+
echo ""
50+
echo "=== DIAGNOSTIC CONTENTS ==="
51+
cat /tmp/diagnostic.txt
52+
else
53+
echo "진단 파일이 없습니다."
54+
echo ""
55+
echo "S3에 직접 접근하여 모든 파일 확인..."
56+
aws s3 ls s3://runnect-prod-bucket/ --recursive 2>&1 | tail -20
57+
fi
58+
59+
- name: Health check from GitHub Actions
9460
run: |
95-
echo "=== S3 버킷 확인 ==="
96-
aws s3 ls s3://runnect-prod-bucket/ 2>&1 || echo "S3 접근 실패"
61+
echo "=== External Health Check ==="
62+
for PORT in 80 8081 8082; do
63+
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")
64+
echo "Port $PORT: HTTP $HTTP_CODE"
65+
done

0 commit comments

Comments
 (0)