기타/scripts(12)
-
ECR lifecycle policy 전체 repository 적용
- 개요 ECR Repository를 생성하면 기본적으로 LifeCycle이 적용되지 않으며, 해당 메뉴까지 나눠져 있어서 그냥 데이터가 계속 쌓이면서 과금이 된다. 아래는 계정의 전체 ECR에 untagged image 15개 이상 부터 삭제하라는 LifeCycle을 일괄 적용하는 스크립트이다. - 스크립트 ( ecr_retention_put.sh ) #!/bin/bash for i in $(aws ecr describe-repositories --query 'repositories[*].repositoryName[]' --output text) do aws ecr put-lifecycle-policy --repository-name $i --lifecycle-policy-text "file://pol..
2023.06.28 -
ip address location 확인하는 방법
방법 curl -s ipinfo.io/ | jq '.ip,.city,.country,.org' 예시 curl -s ipinfo.io/1.1.1.1 | jq '.ip,.city,.country,.org' "1.1.1.1" "Los Angeles" "US" "AS13335 Cloudflare, Inc."
2023.06.09 -
tg_attr_deg_delay.sh
- 개요 target group을 생성하면 default deregistration delay timeout이 300초 이므로, 줄여서 사용하는 것을 추천한다. 기본적으로 TG가 300초 동안 기다렸다가 deregistration이 되어서 비용이 많이 발생하므로 특별한 이슈가 없다면 30초까지 줄이는 것을 추천한다. 기 존재하는 TG의 timeout 값을 확인하는 스크립트는 아래와 같다. - 스크립트 #!/bin/bash echo "ELB attributes" for i in $(aws elbv2 describe-target-groups --query TargetGroups[].TargetGroupArn --output text) do echo $i aws elbv2 describe-target-grou..
2022.12.07 -
elb_attr_delete_protection.sh
- 개요 AWS 리소스는 최초 생성시 대부분 삭제 방지 기능이 꺼져있는데, 삭제 방지 기능을 켜놓으면 실수로 삭제를 하게 될 경우를 미연에 방지할 수 있는 좋은 기능이다. 기 존재하는 ELB의 삭제 방지 기능을 확인하는 스크립트는 아래와 같다. 리스트 부분만 바꾸면 다른 리소스도 확인이 가능하다. - 스크립트 #!/bin/bash echo "ELB attributes" for i in $(aws elbv2 describe-load-balancers --query LoadBalancers[].LoadBalancerArn[] --output text) do echo $i aws elbv2 describe-load-balancer-attributes --load-balancer-arn $i --query 'A..
2022.12.07 -
retention 없는 CloudWatch logs의 log groups
- 개요 테라폼이나 AWS Web console에서 AWS 리소스를 생성할 때 CloudWatch Logs에 log group이 retention 설정 없이 생성되는 경우가 많으며 관리가 안돼서 비용이 과금되는 경우가 많다. 아래는 기 생성된 log groups의 retention을 확인하고 적용하는 명령어를 자동 생성해 주는 스크립트이다. - 스크립트 #!/bin/bash echo "CloudwatchLog without Retention Settings" for i in $(aws logs describe-log-groups --query logGroups[*].logGroupName[] --output text) do CloudwatchLogRetention=$(aws logs describe-lo..
2022.12.07 -
codepipeline stage status
- 개요 CodePipeline의 상태 확인을 할 수 있는 스크립트이다 - 스크립트 #!/bin/bash echo "CodePipeline Deploy Status" for i in {0..2}; do for codepipeline in $(aws codepipeline list-pipelines --query pipelines[].name --output text) do stage=$(aws codepipeline get-pipeline-state --name $codepipeline --query 'stageStates[].latestExecution[].status | '[$i]'' --output text) if [[ $stage == "Succeeded" ]] || [[ $stage == "No..
2022.11.21 -
AWS VPC에 할당된 전체 리소스 확인
- 개요 AWS 특정 VPC에 할당된 리소스를 전부 확인할 수 있는 스크립트 - 스크립트 (vpclist.sh) #!/bin/bash vpc="$1" region="ap-northeast-2" aws ec2 describe-vpc-peering-connections --region $region --filters 'Name=requester-vpc-info.vpc-id,Values='$vpc | grep VpcPeeringConnectionId aws ec2 describe-nat-gateways --region $region --filter 'Name=vpc-id,Values='$vpc | grep NatGatewayId aws ec2 describe-instances --region $region -..
2022.11.08 -
ECR repository life-cycle-policy 확인
- 개요 ECR에서 repository를 생성할 경우 LifeCyclePolicy가 기본적으로 없이 생성되므로 과금의 원인이 된다. 아래는 기 존재하는 repository의 LifeCyclePolicy가 있는지 확인해주는 스크립트 이다 - 스크립트 #!/bin/bash for i in $(aws ecr describe-repositories --query 'repositories[*].repositoryName[]' --output text) do ecr=$(aws ecr get-lifecycle-policy --repository-name $i 2>/dev/null) if [ $? == 0 ]; then echo good else echo $i has no life cycle policy fi done
2022.11.04 -
같은 커맨드 여러 번 반복해서 실행
- 개요 bash에서 같은 명령어를 수 차례 반복하는 테스트는 많이 하므로 아래 스크립트 예제로 간단히 정리 했다. - 스크립트 ## 20번 반복 for i in `seq 20`; do echo hello; done ** seq뒤에 숫자로 반복 횟수 결정
2022.11.01 -
AMI 연결이 안되어있는 Snapshot 찾기 (Orphaned)
- 개요snapshot은 ec2를 삭제하거나 AMI를 삭제해도 같이 삭제되지 않으며 연결되어 있거나 사용중인지 확인 하는게 까다롭다. 또한 사용도 안되고 과금만 되고 있는 경우가 대부분이다. 아래는 AMI에 연결되어 있지 않는 snapshot을 확인하는 스크립트 이다. - 스크립트 <pre id="code_1665625404803" class="bash..
2022.10.13