Skip to content

Instantly share code, notes, and snippets.

@ninejuan
Last active October 12, 2025 07:07
Show Gist options
  • Select an option

  • Save ninejuan/3eef186e077dc6d6dd13464fcbd55d2d to your computer and use it in GitHub Desktop.

Select an option

Save ninejuan/3eef186e077dc6d6dd13464fcbd55d2d to your computer and use it in GitHub Desktop.
2023 Local 1 mark sh
#!/bin/bash
### ---------------------------------------------------------------------------
### 본 파일은 23-local-1-mark.pdf의 채점 스크립트를 한번에 실행할 수 있도록 모아둔 파일입니다.
### 2023년 지방기능경기대회 과제 배포파일에는 mark.sh가 포함되지 않았습니다.
### ---------------------------------------------------------------------------
echo "========== 1-1 =========="
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-public-b --query \
"Subnets[].CidrBlock"
aws ec2 describe-subnets --filter Name=tag:Name,Values=wsi-private-a --query \
"Subnets[].CidrBlock"
aws ec2 describe-subnets --filter Name=tag:Name,Values=wsi-private-b --query \
"Subnets[].CidrBlock"
echo "========== 1-3 =========="
aws ec2 describe-internet-gateways --filter Name=tag:Name,Values=wsi-igw \
--query "InternetGateways[].InternetGatewayId"
aws ec2 describe-route-tables --filter Name=tag:Name,Values=wsi-public-rtb \
--query "RouteTables[].Routes[].GatewayId"
echo "========== 1-4 =========="
aws ec2 describe-route-tables --filter Name=tag:Name,Values=wsi-private-rtb-a \
--query "RouteTables[].Routes[].NatGatewayId"
aws ec2 describe-route-tables --filter Name=tag:Name,Values=wsi-private-rtb-b \
--query "RouteTables[].Routes[].NatGatewayId"
echo "========== 1-5 =========="
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-public-b --query \
"Subnets[].AvailabilityZone"
aws ec2 describe-subnets --filter Name=tag:Name,Values=wsi-private-a --query \
"Subnets[].AvailabilityZone"
aws ec2 describe-subnets --filter Name=tag:Name,Values=wsi-private-b --query \
"Subnets[].AvailabilityZone"
echo "========== 2-1 =========="
aws ec2 describe-instances --filter Name=tag:Name,Values=wsi-bastion \
--query "Reservations[].Instances[].InstanceId"
echo "========== 2-2 =========="
aws ec2 describe-instances --filter Name=tag:Name,Values=wsi-bastion \
--query "Reservations[].Instances[].PublicIpAddress"
aws ec2 describe-addresses --query "Addresses[].PublicIp"
echo "========== 3-1 =========="
aws ecr describe-images --repository-name wsi-about --query "imageDetails[].imageTags[]"
aws ecr describe-images --repository-name wsi-projects --query "imageDetails[].imageTags[]"
echo "========== 3-2 =========="
aws ecr describe-image-scan-findings --repository-name wsi-about \
--image-id imageTag=latest --query "imageScanFindings.findingSeverityCounts"
aws ecr describe-image-scan-findings --repository-name wsi-projects \
--image-id imageTag=latest --query "imageScanFindings.findingSeverityCounts"
echo "========== 4-1 =========="
aws ecs describe-clusters --cluster wsi-ecs --query "clusters[].clusterName"
aws ecs describe-clusters --cluster wsi-ecs --query "clusters[].capacityProviders[]"
echo "========== 4-2 =========="
aws ecs describe-task-definition --task-definition about-task-def \
--query "taskDefinition.containerDefinitions[].portMappings[].containerPort"
aws ecs describe-task-definition --task-definition about-task-def \
--query "taskDefinition.containerDefinitions[].image"
aws ecs describe-task-definition --task-definition projects-task-def \
--query "taskDefinition.containerDefinitions[].portMappings[].containerPort"
aws ecs describe-task-definition --task-definition projects-task-def \
--query "taskDefinition.containerDefinitions[].image"
echo "========== 4-3 =========="
aws ecs describe-services --cluster wsi-ecs --services wsi-about-svc \
--query "services[].networkConfiguration.awsvpcConfiguration.assignPublicIp"
aws ecs describe-services --cluster wsi-ecs --services wsi-about-svc \
--query "services[].launchType"
aws ecs describe-services --cluster wsi-ecs --services wsi-about-svc --query "services[].status"
aws ecs describe-services --cluster wsi-ecs --services wsi-projects-svc \
--query "services[].networkConfiguration.awsvpcConfiguration.assignPublicIp"
aws ecs describe-services --cluster wsi-ecs --services wsi-projects-svc \
--query "services[].launchType"
aws ecs describe-services --cluster wsi-ecs --services wsi-projects-svc --query "services[].status"
echo "========== 4-4 =========="
aws ecs describe-clusters --cluster wsi-ecs --query "clusters[].runningTasksCount"
echo "========== 4-5 =========="
aws ecs describe-clusters --cluster wsi-ecs --query "clusters[].runningTasksCount"
aws ecs describe-services --cluster wsi-ecs --services wsi-about-svc \
--query "services[].networkConfiguration.awsvpcConfiguration[].subnets[]"
aws ecs describe-services --cluster wsi-ecs --services wsi-about-svc \
--query "services[].runningCount"
aws ecs describe-services --cluster wsi-ecs --services wsi-projects-svc \
--query "services[].networkConfiguration.awsvpcConfiguration[].subnets[]"
aws ecs describe-services --cluster wsi-ecs --services wsi-projects-svc \
--query "services[].runningCount"
echo "========== 4-6 =========="
aws elbv2 describe-load-balancers --query "LoadBalancers[].SecurityGroups[]"
aws ec2 describe-security-groups \
--query "SecurityGroups[?GroupName=='wsi-about-sg'].IpPermissions[].UserIdGroupPairs[].GroupId"
aws ec2 describe-security-groups --query \
"SecurityGroups[?GroupName=='wsi-projects-sg'].IpPermissions[].UserIdGroupPairs[].GroupId"
echo "========== 5-1 =========="
aws elbv2 describe-load-balancers \
--query "LoadBalancers[?LoadBalancerName=='wsi-alb'].LoadBalancerName"
aws elbv2 describe-load-balancers \
--query "LoadBalancers[?LoadBalancerName=='wsi-alb'].Scheme"
aws elbv2 describe-load-balancers \
--query "LoadBalancers[?LoadBalancerName=='wsi-alb'].Type"
aws elbv2 describe-load-balancers \
--query "LoadBalancers[?LoadBalancerName=='wsi-alb'].AvailabilityZones[].ZoneName"
echo "========== 5-2 =========="
alb_arn=`aws elbv2 describe-load-balancers \
--query "LoadBalancers[?LoadBalancerName=='wsi-alb'].LoadBalancerArn" --output text`
aws elbv2 describe-listeners --load-balancer-arn $alb_arn --query "Listeners[].Protocol"
aws elbv2 describe-listeners --load-balancer-arn $alb_arn --query "Listeners[].Port"
echo "========== 5-3 =========="
alb_dns=`aws elbv2 describe-load-balancers \
--query "LoadBalancers[?LoadBalancerName=='wsi-alb'].DNSName" --output text`
curl $alb_dns
echo "========== 6-1 =========="
aws elbv2 describe-target-groups --names wsi-about-tg \
--query "TargetGroups[].HealthCheckPath"
aws elbv2 describe-target-groups --names wsi-projects-tg \
--query "TargetGroups[].HealthCheckPath"
echo "========== 6-2 =========="
about_tg_arn=`aws elbv2 describe-target-groups --names wsi-about-tg \
--query "TargetGroups[].TargetGroupArn" --output text`
projects_tg_arn=`aws elbv2 describe-target-groups --names wsi-projects-tg \
--query "TargetGroups[].TargetGroupArn" --output text`
aws elbv2 describe-target-health --target-group-arn $about_tg_arn \
--query "TargetHealthDescriptions[].TargetHealth.State"
aws elbv2 describe-target-health --target-group-arn $projects_tg_arn \
--query "TargetHealthDescriptions[].TargetHealth.State"
echo "========== 6-3 =========="
about_tg_arn=`aws elbv2 describe-target-groups --names wsi-about-tg \
--query "TargetGroups[].TargetGroupArn" --output text`
projects_tg_arn=`aws elbv2 describe-target-groups --names wsi-projects-tg \
--query "TargetGroups[].TargetGroupArn" --output text`
aws elbv2 describe-target-health --target-group-arn $about_tg_arn \
--query "TargetHealthDescriptions[].Target.AvailabilityZone"
aws elbv2 describe-target-health --target-group-arn $projects_tg_arn \
--query "TargetHealthDescriptions[].Target.AvailabilityZone"
echo "========== 7-1 =========="
aws cloudfront list-distributions --query "DistributionList.Items[].Id"
aws cloudfront list-distributions --query "DistributionList.Items[].Origins.Items[].DomainName"
echo "========== 7-2 =========="
cloudfront_url=`aws cloudfront list-distributions --query "DistributionList.Items[].DomainName" \
--output text`
curl $cloudfront_url/about
curl $cloudfront_url/projects
echo "========== 7-3 =========="
curl -I -s $cloudfront_url/about | grep X-Cache
curl -I -s $cloudfront_url/projects | grep X-Cache
echo "========== 7-4 =========="
cloudfront_id=`aws cloudfront list-distributions --query "DistributionList.Items[].Id" --output text`
aws cloudfront get-distribution-config --id $cloudfront_id --query "DistributionConfig.PriceClass"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment