[AWS] 시스템매니저 사용하기(SSH 필요없이 원격 다중 서버관리) > AWS.클라우드
AWS.클라우드

[AWS] 시스템매니저 사용하기(SSH 필요없이 원격 다중 서버관리)

조회 245회 댓글 0건

원격의 서버에 업그레이드를 해야 하는데 1대씩 들어가서 관리하는 방법도 있겠고 오토스케일링에 의해서 EC2가 자동으로 생성된것도 있고 할때 전체 서버에 명령을 내리기 위한 관리 프로그램입니다.


AWS SSM(Systems Manager)

IP로 접속하는 방식이 아닌 EC2 인스턴스ID를 이용해서 접속을 하는 방식입니다. 접속하게 되면 유저는 ssm-user로 표시되며 sudo -i 명령으로 root 유저로 전환이 가능 합니다.
사용하기 위해선 IAM에서 역활을 생성하고. 이 역활이 EC2에 적용 되어 있어야 합니다.
그리고나서 EC2에 접속해서 SSM 서비스를 활성화 시키고. 클라이언트에선 SSM 플러그인을 설치하면 사용이 가능 합니다.


3a431b4e617b1cc09be8a09a9296fb78_1699531185_4251.png


IAM 역활 생성

EC2에 SSM 역활 부여하기 위해서 다음과 같은 순서로 생성하면 된다.

IAM > 액세스 관리 > 역활 > "역활 만들기" > "AWS 서비스" 선택
사용사례에서 "EC2" 선택
권한추가 목록이 나오면 "AmazonSSMManagedInstanceCore"를 선택
역활 이름을 입력한고 "역활 생성" 버튼을 클릭하여 생성 한다.

EC2에 적용

시작템플릿이 있으면 시작템플릿도 같이 변경을 해줘야 한다. 적용 시키는 위치는 다음과 같다.
EC2 생성된 인스턴스에선 요약에서 'IAM 역할' 부분을 보면 된다.

EC2 인스턴스 상세정보에서
작업 > 보안 > IAM 역활 수정
선택한 다음 나오는 화면에서 역활 추가한것을 선택해 주면 된다.

시작템플릿 수정
역활 생성한것을 선택해준다.
고급 세부정보 > IAM 인스턴스 프로파일

서버에 접속하여 SSM 활성화

서비스를 올린 다음 재부팅 시에도 적용이 되어야 하기 때문에 enable를 해준다. 그리고 상태를 확인해 보면 된다.
systemctl restart amazon-ssm-agent.service
systemctl enable amazon-ssm-agent.service
systemctl status amazon-ssm-agent.service

SSM CLI에서 사용할 플러그인 설치

최종적으로 플러그인을 설치하면 되는데 먼저 aws cli가 설치 되었는지 확인해 보는것이 좋다.

aws cli 설치

aws cli를 사용하기 때문에 설치 되어 있지 않다면 먼저 설치를 해야 한다.
우선 aws --version 해서 버전 정보가 나오면 설치가 된 것이다.

그렇지 않고 파일이 없다고 한다면 아래를 참고해서 설치를 하면 된다.
https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-install.html

처음이라면 환경 설정을 해줘야 한다.
aws configure

AWS Access Key ID [None]: AWS_ACCESS_KEY_ID
AWS Secret Access Key [None]: AWS_SECRET_ACCESS_KEY
Default region name [None]: ap-northeast-2
Default output format [None]:

실행하고 나면 아래 위치에 파일이 생성된 것을 볼 수 있다.
ll /root/.aws/
-rw------- 1 root root 34 9월 10 12:41 config
-rw------- 1 root root 116 9월 10 12:41 credentials

ssm 플러그인 설치

아마존리눅스2, Centos7 에서 최신버전 설치
wget https://s3.amazonaws.com/session-manager-downloads/plugin/latest/linux_64bit/session-manager-plugin.rpm
yum install -y session-manager-plugin.rpm

ssm 플러그인 삭제해야 된다면
yum erase session-manager-plugin -y

session-manager-plugin 명령을 실행해서 잘 되는지 확인 한다.
The Session Manager plugin was installed successfully. Use the AWS CLI to start a session.

ssm플러그인이 만약 안된다면 경로를 확인해 본다.
echo $PATH
whereis session-manager-plugin

ssm-user 유저로 접속하기
aws ssm start-session --target
aws ssm start-session --target i-01e7c9af6364b1667

전체서버에 명령 내리기 

EC2 SDK를 이용해서 현재 생성되어 있는 목록을 텍스트 파일로 만들어 놓은 다음 스크립트를 활용하는 예 입니다.


instance_ids.txt
  i-0abcd1234efgh5678
  i-0abcd1234efgh5679
  i-0abcd1234efgh5680
 


  #!/bin/bash

  # File containing instance IDs
  INSTANCE_FILE="instance_ids.txt"

  # AWS region
  REGION="ap-northeast-2"

  # Command to run on instances
  COMMAND=$1

  if [ -z "$COMMAND" ]
  then
    echo "No command specified"
    exit 1
  fi

  while IFS= read -r INSTANCE_ID
  do
    echo "Running command on $INSTANCE_ID"
   
    aws ssm send-command \
        --document-name "AWS-EC2 RunShellScript" \
        --instance-ids "$INSTANCE_ID" \
        --parameters commands="$COMMAND" \
        --region $REGION
   
  done < "$INSTANCE_FILE"
 

 

./run_command.sh 'sudo yum update -y'




  • 페이스북으로 공유
  • 트위터로  공유
  • 구글플러스로 공유
전체 50건 1 페이지
  • profile_image 무료로 사용하는 RDB DBMS 에서 가장 많이 사용하는 MySQL를 사용하는 오로라 mysql 설정 방법에 대해 정리 한것입니다.오로라 RDS-MySQL 데이터베이스 생성 클라우드 환경에 맞게 AWS에서 변경한 상품이다. 오로라가 아닌 MySQL 상품도 선택을 할 수 있는데 비용을 확인하고 나면 그럴 생각이 없어질 것이다. 그리고 AWS에 맞게 변경된 제품이기 때문에 더 좋다고 볼 수 있다.   ▷ 데이터베이스 생성 방식 선택 표준생성 ▷ …
  • profile_image 쓰기 전용 인스턴스를 상위 등급으로 변경하여 성능을 높이고자 할 때 어떻게 해야 하는지에 대한 것입니다.라이더 인스턴스 높은 성능의 인스턴스로 변경하기 먼저 알고 넘어가야 할것은 라이더 인스턴스 변경하면 변경하는 동안 라이더가 없기에 AWS RDS에서는 리더 인스턴스 하나를 라이더로 변경한 후 작업이 진행 됩니다. 그렇기 때문에 모두 같은 성능의 인스턴스면 문제가 되지 않겠지만 만약 다르면 성능이 높은 인스턴스를 '장애조치 우선순위' 값…
  • profile_image 제목은 이렇게 달아 달었지만 먼저 AWS 오로라에서는 MySQL DBMS 구조에서 흔하게 볼 수 있는 마스터 슬레이브 구조가 아닙니다.생성한 다음 아래 명령을 내려 보면 다른 방법을 사용함을 알 수 있습니다.   mysql> show master status \G  Empty set (0.00 sec)  mysql> show slave status \G   Empty set, 1 warning (0.00 sec)  mysql> …
  • profile_image AWS Elasticache는 Amazon Web Services(AWS)에서 제공하는 완전 관리형 인메모리 데이터 스토어 및 캐시 서비스입니다. 이 서비스는 레디스와 Memcached를 지원하며, 이를 통해 고성능, 스케일링 가능한 및 비용 효율적인 인메모리 캐시 솔루션을 제공합니다.  Redis는 RDB가 아닙니다.RDB에서 IO를 줄이거나 슬로우쿼리가 약간 있거나 많은 게시물이 있을때 키 밸류의 인메모리 디비를 사용하면 잇점이 있기 때문에…
  • profile_image 오로라 클러스터 사용시 인스턴스를 추가, 삭제 하는 PHP SDK 예제 입니다.비교적 간단한 형태 이며 AWS 키는 본인의 환경에 맞게 변경 하면 됩니다.use Aws\Rds\RdsClient;class PabburiAws {  function profile() {    $aAwsConfig     = [      'region'      => AWS_REGION,      'version'     =>'latest',      'c…
  • profile_image 현재 AWS의 오토스케일링 현황을 볼 수 있는 SDK 입니다.필요에 따라서 문제가 있을것으로 추정 되면 종료 시켜서 자동으로 새로 생성 되게 할 수 있습니다. 원하는용량 - 이것은 한번에 생성 시킬 인스턴스를 말합니다. 보통 1을 지정하기도 하는데 이보다는 부하가 있기 때문에 생성 시키는 것으로 최소 2이상을 주는 것이 더 좋겠습니다.아래 클래스는 오토스케일링 PHP SDK 현황 확인을 하는 것이며 아래쪽에 있는것은 종료 시키는 것입니다.  c…