インフラエンジニアの隙間時間 Infrastructure Engineer's Spare Time
概要
変更作業等のエビデンス取得を画面キャプチャでやっていると、下記の課題があると思います。
・面倒くさい ・キャプチャは変更の全量がとれない ・変更箇所以外を変更していないエビデンスがない
っていうのをAWS CLIでテキスト出力して楽ちんする方法です。
使い方は、作業前と作業後をテキスト出力して、diff結果から変更箇所を確認。 エビデンス取る方も確認する方も楽ができて効率UP!!
AWS CLI
| コンポーネント | 項目 | 用途 | コマンド |
|---|---|---|---|
| EC2 | AMI | AMI一覧取得 | aws ec2 describe-images \ --region ap-northeast-1 \ --owners self \ --query 'reverse(sort_by(Images,&CreationDate)[].{ImageId:ImageId, CreationDate:CreationDate})' \ --output table |
| EC2 | スナップショット | スナップショット一覧取得 | aws ec2 describe-snapshots \ --region ap-northeast-1 \ --owner-ids self \ --query 'reverse(sort_by(Snapshots,&StartTime)[].{SnapshotId:SnapshotId,StartTime:StartTime})' \ --output table |
| EC2 | EBS | EBS一覧取得 | aws ec2 describe-volumes --output table \ --query 'Volumes[*].{ID:VolumeId, State:State, Type:VolumeType, Size:Size, Iops:Iops, Throughput:Throughput}' |
| EC2 | EBS | EBS一覧取得 (インスタンス情報もつける) |
aws ec2 describe-volumes --output table \ --query 'Volumes[*].{ID:VolumeId, State:State, Type:VolumeType, Size:Size, Iops:Iops, Throughput:Throughput,InstanceId:Attachments[0].InstanceId,InstanceName:Tags[0].Value}' |
| EC2 | EBS | EBS設定変更の進行状況 | aws ec2 describe-volumes-modifications --output table \ --query 'VolumesModifications[*].{ID:VolumeId, State:ModificationState, Progress:Progress, StartTime:StartTime}' |
| EC2 | ENI | VPCフローログ一覧取得 | aws ec2 describe-flow-logs --output table \ --query 'FlowLogs[*].{FlowLogId:FlowLogId, ResourceId:ResourceId, LogGroupName:LogGroupName, LogDestinationType:LogDestinationType, LogDestination:LogDestination}' |
| ELB | ALBリスナールール | リスナールール一覧の取得 | aws elbv2 describe-rules \ --listener-arn #ELBのリスナーarn# \ --query 'Rules[].{Priority: Priority, RuleArn: RuleArn}' --output=table |
| S3 | バケット | バケット一覧取得 | aws s3 ls |
| S3 | ライフサイクルポリシー | ライフサイクルポリシーの取得 | aws s3api get-bucket-lifecycle-configuration --bucket #バケット名# |
| S3 | バケットポリシー | バケットポリシーの取得 | aws s3api get-bucket-policy --bucket #バケット名# \ --query Policy --output text |
| S3 | アクセスログ | アクセスログ設定の取得 | aws s3api get-bucket-logging --bucket #バケット名# |
| IAM | IAM ポリシー | IAM ポリシーの取得 | aws iam get-policy-version \ --version-id #対象ポリシーのバージョン# \ --policy-arn #対象ポリシーのARN# \ --query 'PolicyVersion.Document' |
| SQS | SQSキュー | sqs キューの取得 | for QueueUrl in \$(aws sqs list-queues --query "QueueUrls[]" --output text); do aws sqs get-queue-attributes --queue-url "$QueueUrl" --attribute-names All done |
| Lambda | Lambda 関数 | Lambda 関数コードの取得 | func="#Lambda関数名#" url=\$(aws lambda get-function --function-name ${func} | jq -r '.Code.Location') curl -o lambda.zip $url |
| Lambda | Lambda 関数 | function一覧の取得 | aws lambda list-functions --output table \ --query 'sort_by(Functions, &FunctionName)[*].{FunctionName:FunctionName, FunctionArn:FunctionArn, Runtime:Runtime, LastModified:LastModified}' |
| VPC | ルートテーブル | ルートテーブルの取得 | aws ec2 describe-route-tables \ --route-table-ids #ルートテーブルのID# \ --output json |
| VPC | TGW | TGW attachmentsの一覧取得 | aws ec2 describe-transit-gateway-attachments |
| VPC | TGW | TGW route-table-associationsの一覧取得 | aws ec2 get-transit-gateway-route-table-associations --transit-gateway-route-table-id #TGW route tableのID# --output table |
| VPC | TGW | TGW route-table-propagationsの一覧取得 | aws ec2 get-transit-gateway-route-table-propagations --transit-gateway-route-table-id #TGW route tableのID# --output table |
| VPC | TGW | TGW 全route-tableの一覧取得 | aws ec2 search-transit-gateway-routes --transit-gateway-route-table-id tgw-rtb-0f486b7edea1ee8e2 --filters "Name=state,Values=active,blackhole" |
| ResourceAccessManager | principals | principalsの一覧取得 | aws ram list-principals --resource-owner SELF --resource-type #任意のリソースタイプ# |
| cloudwatch | cwlogs | ログの抽出 | awslogs get #ロググループ名# \ --start='DD/MM/YYYY HH:MM' \ --end='DD/MM/YYYY HH:MM' > #出力先のファイル名.csv# |
| cloudwatch | CWアラーム | CWアラーム一覧の取得 | aws cloudwatch describe-alarms | jq '.MetricAlarms | map({AlarmName: .AlarmName, AlarmActions: .AlarmActions}) | sort_by(.AlarmName)' |
| cloudfront | ディストリビューション | ディストリビューション一覧取得 | aws cloudfront list-distributions |
| acm | 証明書 | 証明書一覧取得 | aws acm list-certificates |
