탈, 발판 서버로의 단계 Amazon EC2 Systems Manager를 사용하여 명령 실행

Amazon EC2 System Manager라는 서비스의 존재를 지금 알았으므로 시도해 보았습니다.

이 기능을 사용하면 Chef 나 Ansible 을 사용하지 않고도 간편하게 여러 서버에서 명령을 실행할 수 있습니다.

실행 결과는 S3에 저장할 수 있습니다.

작업 대상 서버의 대수분, 절차서를 작성해 크로스 체크 운운 등 즐겁지 않은 작업이 조금도 없어지면 다행입니다.

사용법



Amazon EC2 System Manager란 무엇입니까?
htps : // / cs. 아 ws. 아마존. 이 m / 그럼 _ jp / sys ms - 마나게 r / ㅁ st / 우세 r 굉장히 / ぁ t - s sys와 ms - 마나게 r. HTML

・・・상기의 URL 에 따르는 것이 견실한 길입니다만, 자세한 것은 그렇게 두고, 우선은 손쉽게 시험해 보고 싶다고 생각해 버리는 것이 인정이겠지요.

그렇다면 '일단 무엇을 어떻게 하면 명령을 실행할 수 있을까? 』만 소개합니다.

0. 이 기사의 전제


  • IAM Role을 EC2 인스턴스에 적용 할 수 있습니다
  • OS는 Amazon Linux
  • SSH로 로그인 가능
    ※ ssm 에이전트를 설치하기 위해 (신규 작성의 경우는 user command에서도 가능)

  • 1. IAM Role 만들기



    먼저 명령을 실행할 EC2 인스턴스에 연결하는 IAM Role을 생성하고 AmazonEC2RoleforSSM 정책을 연결합니다.



    ※이번은 검증용의 root 어카운트로 작업하고 있으므로, ssm용의 어카운트 작성은 생략하고 있습니다.

    ※실운용으로는, 제대로 ssm용의 어카운트를 작성합시다.

    ※IAM Role은 EC2 인스턴스에 연결하지 않으면 적용되지 않습니다.

    2. S3 버킷 만들기



    2500자까지라면 관리 콘솔에서도 확인 가능하므로, 이 공정은 생략 가능합니다.

    3. ssm 에이전트 설치



    명령을 실행할 대상 인스턴스에 ssm 에이전트를 설치합니다. 절차는 다음과 같습니다.
    # mkdir /tmp/ssm
    # cd /tmp/ssm
    # yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
    # status amazon-ssm-agent
    -----
    amazon-ssm-agent start/running, process 2185
    -----
    
    # ps -ef|grep amazon-ssm-agent|grep -v grep
    -----
    root      2185     1  0 21:04 ?        00:00:02 /usr/bin/amazon-ssm-agent
    -----
    

    ssm 에이전트 설치:
    htps : // / cs. 아 ws. 아마존. 이 m / 그럼 _ jp / sys ms - 마나게 r / ㅁ st / 우세 r 구이 / sm 아겐 t. html # sys man-in s ta l- s sm agen t

    4. 명령 실행



    EC2 서비스를 열고 왼쪽 사이드 메뉴의 'SYSTEMS MANAGER SERVICES'에서 '명령 기록'을여십시오.



    파란색 '명령 실행'이라는 버튼을 누릅니다. 그러면 아래 화면이 열립니다.



    명령 문서는 AWS-RunShellScript를 선택하고 대상 인스턴스는 IAM 역할을 할당 ssm 에이전트를 설치한 인스턴스를 선택합니다.

    세세한 것은 이미지를 보고 적절히 설정해 주시는 것으로, 이번 실행하는 커맨드는 아래와 같습니다.

    일련의 명령은 루트 사용자에 의해 실행되므로 sudo는 필요하지 않습니다.
    id
    
    ss -antp
    
    yum check-update
    
    echo $?
    

    이것을 'Commands'에 붙여넣으면 '실행'버튼을 누릅니다.

    5. 실행 결과 확인



    아래 그림과 같이 『성공』이 되고 있습니까?



    『출력 표시』를 열면 아래 그림과 같이 실행 결과를 확인할 수 있습니다.



    이번에는 실행 대상이 1대뿐이었지만, 복수대 동시에 실행할 때는 hostname 커멘드등도 사용하는 것이 실행 대상의 특정도 하기 쉬울지도 모릅니다. (2020/03/22 덧붙여 : 실수로 hostname을 재기록할 우려가 있으므로, 개인적으로는 uname 쪽이 좋아합니다)

    명령 종료 상태에 대한 조심



    아래는 이번에 실행한 커멘드입니다만, 마지막 커멘드가 yum 커멘드의 종료 스테이터스의 echo 가 되어 있는 것을 알 수 있습니까?
    id
    
    ss -antp
    
    yum check-update
    
    echo $?
    

    yum check-update 는 정상적으로 종료해도 상태는 100 을 돌려줍니다.

    Amazon EC2 System Manager는 마지막 명령 실행 결과가 0이 아니면 일련의 실행 결과가 실패라고 판단합니다.

    좋은 웹페이지 즐겨찾기