AWS System Manager 세션 관리자를 사용하여 EC2 인스턴스에 셸 액세스할 때 즐겁게

3862 단어 aws-clijqPecoAWS
어제는 @cfiken 에 의해 TensorFlow에서 학습한 모델의 그래프를 tf.train.import_meta_graph로 로드 이었습니다.
매우 훌륭한 내용이었습니다!
아직 보지 않은 분이 오시면 부디! ! !

그럼, 주제에 들어갑니다.

AWS System Manager 세션 관리자



인스턴스에 액세스할 때 사용하고 있는 것이 아래와 같습니다.
$ aws ssm start-session --target instance-id

매번 같은 인스턴스에 액세스한다면 신경이 쓰이지 않지만 다른 인스턴스에 액세스 할 때도 있습니다.
매번 aws ec2 describe-instances를 사용하여 인스턴스 ID를 확인하는 것은 번거롭기 때문에 jq와 peco를 사용하여 쉽게 인스턴스에 액세스 할 수 있도록 셸을 만들었습니다.

만든 사람


#!/bin/sh

PROFILE=''
if [ $1 ]; then
    PROFILE="--profile $1"
fi

ID=`aws ec2 describe-instances $PROFILE | \
    jq -r '.[][].Instances[]
         | [.InstanceId,
            [.Tags[] | select(.Key == "Name").Value][]]
         | @tsv' | \
    column -t | \
    peco | perl -pe 's/\s.*//'`
aws ssm start-session --target $ID $PROFILE

하고 있는 일



우선, aws ec2 describe-instances 로 인스턴스의 정보를 취득합니다.
그런 다음 jq를 사용하여 인스턴스 ID와 태그 이름을 tsv로 토합니다. 1
그 결과를 peco에 건네주어 검색할 수 있도록(듯이) 합니다.
선택한 것으로 필요한 것은 인스턴스 ID뿐이므로 Name 부분의 정규 표현을 이용하여 삭제합니다.
마지막으로 aws ssm start-session --target 에 선택한 인스턴스 ID를 전달하여 인스턴스에 액세스합니다.

--profile 정보



여러 계정을 사용하는 경우 --profile 에서 기본이 아닌 계정을 사용할 수 있습니다.
그래서 인수를 전달하여 다른 계정을 사용할 수 있도록 했습니다. 2

움직여 보자


$ ssm $PROFILE


이런 식으로 나오므로 나머지는 어떤 것을 선택하면

이 방법으로 인스턴스에 액세스합니다. 3
즐길 수있게되었습니다!
수고하셨습니다.

내일은 @SAMUKEI 하지만 looker
두근두근하고 잠을 잘 수 없습니다! ! !



태그의 Name을 설정하고 있는 전제입니다.

디폴트의 ​​설정만이라면 인수는 건네줄 필요는 없습니다.

alias는 ssm이 아니라 좋아하는 것을 부탁드립니다

좋은 웹페이지 즐겨찾기