Skip to content

Instantly share code, notes, and snippets.

@ninejuan
Created November 15, 2025 10:22
Show Gist options
  • Select an option

  • Save ninejuan/0b0a91dbcbc7d78e8be1197a41c271e1 to your computer and use it in GitHub Desktop.

Select an option

Save ninejuan/0b0a91dbcbc7d78e8be1197a41c271e1 to your computer and use it in GitHub Desktop.
2021 National 1 mark sh
#!/bin/bash
### ------------------------------------------------------------------------------------------
### 본 파일은 21-national-1-mark.pdf의 채점 스크립트를 한번에 실행할 수 있도록 모아둔 파일입니다.
### 일부 스크립트는 오류로 인해 수정되었을 수 있으나, 해당 스크립트는 출제자의 의도에서 전혀 변경되지 않았음을 밝힙니다.
### 2021년 전국기능경기대회 과제 배포파일에는 mark.sh가 포함되지 않았습니다.
### ------------------------------------------------------------------------------------------
read -p "" participant_number
read -p "" random_string
echo "==================== 1-1. VPC ===================="
aws ec2 describe-vpcs --filter Name=tag:Name,Values=wsi-vpc --query "Vpcs[].CidrBlock"
echo "==================== 1-2. 서브넷 ===================="
aws ec2 describe-subnets --filter Name=tag:Name,Values=wsi-public-a --query "Subnets[].CidrBlock"
aws ec2 describe-subnets --filter Name=tag:Name,Values=wsi-private-a --query "Subnets[].CidrBlock"
echo "==================== 1-3. HA 구성 ===================="
aws ec2 describe-subnets --filter Name=tag:Name,Values=wsi-public-a --query "Subnets[].AvailabilityZone"
aws ec2 describe-subnets --filter Name=tag:Name,Values=wsi-private-b --query "Subnets[].AvailabilityZone"
echo "==================== 1-4. 게이트웨이 ===================="
aws ec2 describe-route-tables --filter Name=tag:Name,Values=wsi-private-a-rt --query "RouteTables[].Routes[].NatGatewayId"
aws ec2 describe-route-tables --filter Name=tag:Name,Values=wsi-private-b-rt --query "RouteTables[].Routes[].NatGatewayId"
aws ec2 describe-route-tables --filter Name=tag:Name,Values=wsi-public-rt --query "RouteTables[].Routes[].GatewayId"
echo "==================== 2-1. hosting 파일 확인 ===================="
echo "manual"
echo "aws s3 ls s3://wsi-${participant_number}-${random_string}-web-static"
echo "==================== 2-2. artifact 확인 ===================="
echo "manual"
echo "aws s3 ls s3://wsi-${participant_number}-${random_string}-artifactory"
echo "==================== 2-3. 다운로드 권한 확인 ===================="
echo "manual"
echo "==================== 3-1. 인스턴스 생성 확인 ===================="
aws ec2 describe-instances --filter Name=tag:Name,Values=wsi-bastion-ec2 --query 'Reservations[].Instances[].InstanceId'
echo "==================== 3-2. Public IP 확인 ===================="
aws ec2 describe-instances --filter Name=tag:Name,Values=wsi-bastion-ec2 --query "Reservations[].Instances[].PublicIpAddress"
aws ec2 describe-addresses --query "Addresses[].PublicIp"
echo "==================== 4-1. Cloud Front 생성 확인 ===================="
aws cloudfront list-distributions --query "DistributionList.Items[].Id"
echo "==================== 4-2. S3 origin ===================="
aws cloudfront list-distributions --query "DistributionList.Items[].Origins.Items[]" | jq ".[].DomainName" | grep s3
echo "==================== 4-3. LB Origin ===================="
aws cloudfront list-distributions --query "DistributionList.Items[].Origins.Items[]" | jq ".[].DomainName" | grep elb
echo "==================== 4-4. Edge Type 확인 ===================="
echo "manual"
echo "aws cloudfront list-distributions --query \"DistributionList.Items[].Id\""
echo "aws cloudfront get-distribution-config --id <2nd ID> --query \"DistributionConfig.PriceClass\""
echo "==================== 5-1. Request 확인 ===================="
aws cloudfront list-distributions --query "DistributionList.Items[].DomainName"
echo "manual"
echo "==================== 5-2. Response 확인 ===================="
echo "manual"
echo "==================== 5-3. Default Response 확인 ===================="
echo "manual"
echo "==================== 6-1. 로드밸런서 생성 확인 ===================="
aws elbv2 describe-load-balancers --names "wsi-web-api-alb" --query "LoadBalancers[].Scheme"
aws elbv2 describe-load-balancers --names "wsi-web-api-alb" --query "LoadBalancers[].Type"
echo "==================== 6-2. Request 확인 ===================="
echo "manual"
echo "aws elbv2 describe-load-balancers --names "wsi-web-api-alb" --query \"LoadBalancers[].DNSName\""
echo "curl <DNS Name>/health"
echo "==================== 6-3. 보안 설정 확인 ===================="
echo "manual"
echo "aws ec2 describe-instances --filter Name=tag:Name,Values=wsi-web-api-asg --query \"Reservations[].Instances[].PrivateIpAddress\""
echo "timeout 10 curl http://<ip>:8080/health"
echo "==================== 7-1. 오토스케일링 그룹 생성 확인 ===================="
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names wsi-web-api-asg --query "AutoScalingGroups[].Instances[].HealthStatus"
echo "==================== 7-2. HA 확인 ===================="
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names wsi-web-api-asg --query "AutoScalingGroups[].AvailabilityZones"
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names wsi-web-api-asg --query "AutoScalingGroups[].MinSize"
echo "==================== 7-3. auto scaling 정책 확인 ===================="
aws autoscaling describe-policies --auto-scaling-group-name wsi-web-api-asg --query "ScalingPolicies[].AutoScalingGroupName"
echo "==================== 7-4. scale up 확인 ===================="
echo "manual"
echo "==================== 7-5. 자동화 확인 ===================="
echo "manual"
echo "==================== 8-1. 로그 그룹 생성 확인 ===================="
aws logs describe-log-groups --log-group-name-prefix /aws/ec2/wsi --query "logGroups[].storedBytes"
echo "==================== 8-2. 로그 레코드 확인 ===================="
echo "manual"
echo "==================== 8-3. 로그 스트림 확인 ===================="
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names wsi-web-api-asg --query "AutoScalingGroups[].Instances[].InstanceId"
aws logs describe-log-streams --log-group-name '/aws/ec2/wsi' --query "logStreams[].logStreamName"
echo "==================== 9-1. Dash Board 생성 확인 ===================="
echo "manual"
echo "==================== 9-2. 서버 에러 메트릭 확인 ===================="
echo "manual"
echo "==================== 9-3. 오토스케일링 그룹 메트릭 확인 ===================="
echo "manual"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment