All List ()

[AWS] AWS CLI 설치 및 사용법 ~CLI로 EC2 생성 및 관리~(아마존)_cloud computer_-신촌 더조은 학원 AWS-++

~CLI로 EC2 생성 및 관리~


1. AWS CLI 설치 

* AWS CLI : AWS 커맨드라인 인터페이스 설치 

(만약 100대의 ec2를 만든다고하면 일일이 gui에서 하는것보다 cli에서 처리하는게 훨씬편함)

https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/


- server01 접속

 

- 파이썬설치되있어야됨 

python3 -V

 


- unzip 다운로드 

sudo apt install unzip

엔터 

엔터

unzip -v


 

- CLI 설치 

https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-install.html


AWS CLI 설치 및 업데이트 지침 > 리눅스 > Linux x86 (64-bit) > 위에거 복사 > 명령어 붙어넣고 실행 

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

unzip awscliv2.zip

sudo ./aws/install 


* 제대로 실행이 안되어서 압축이 안풀렸다면 

- 다운되었는지 확인 

ls -l awscliv2.zip 

-rw-rw-r-- 1 user1 user1 60839549 Jul 30 06:17 awscliv2.zip


unzip awscliv2.zip

 

ls -ld aws*

 

sudo ./aws/install 

 

aws --version 아래처럼 나오면 성공 

aws-cli/2.17.19 Python/3.11.9 Linux/5.15.0-117-generic exe/x86_64.ubuntu.22

 


2. AWS IAM 사용자 생성 및 엑세스 키 생성

- aws 콘솔로이동 

aws 서비스 검색 IAM


- 엑세스 관리 / 사용자 > 사용자 생성 


- 이름지정 : aws-cliuser > 다음 


- 직접 정책 연결 > AdministratorAccess 검색 후 체크 > 다음


- 사용자 생성 


- 사용자 선택하여 들어가기 



- 엑세스키 만들기




- CLI선택 / 위의 권장 사항을 이해했으며 액세스 키 생성을 계속하려고 합니다. 체크 > 다음



- 다음 > 설명 : 아무거나상관없어서 계정명 입력함



- 엑세스 키 (다운로드가능) 다운로드 > 완료

엑세스키 AKIAZQ3DSXGWP636RCHO

비밀 엑세스키 MwU9xDhxS8FqW0uq1zoM4BYrRcFrhMGr5xrzbyuG


***주의사항*** 

키페어 유실하면... 해당 키페어를 사용하는 인스턴스는 백업 이미지를 생성한 후에 다시 백업이미를 이용한 인스턴스 생성하여 사용해야 한다. 

(* 잊어버리면 비활성화 후 다시만들기 )




4. server01에서 AWS CLI로 Configure 설정 

- vsocode server01 접속 

- aws configure 입력 

엑세스키 입력 AKIAZQ3DSXGWP636RCHO

비밀키 입력 MwU9xDhxS8FqW0uq1zoM4BYrRcFrhMGr5xrzbyuG

리전명 입력 ap-northeast-2

json 입력 



* ( aws configure 한번더 입력해서 다시 입력하면 update됨 (수정가능) )


5. server01에서 AWS CLI로 암호화 키생성 해보기 

user1@myserver01:~$ aws ec2 help

* (기존키에는 영향없음 새로운키 만드는것)

user1@myserver01:~$ aws ec2 create-key-pair --key-name test_cli_key --query "KeyMaterial" --output text > test_cli_key.pem 

user1@myserver01:~$ cat ./test_cli_key.pem 



6. AWS CLI로 보안그룹 설정 

security-group 생성 (aws 콘솔 > EC2 > 네트워크 및 보안 > 보안그룹에서 확인가능)

(ec2->create-security-group)




1) 그룹생성 

aws ec2 create-security-group --group-name cli_aws_securitygrp --description cli_aws_security_group




2) 규칙 생성 

sg-0ab6837b5aefee6c4 = 보안그룹 ID AWS console 에서 확인가능

aws ec2 authorize-security-group-ingress --group-id sg-0ab6837b5aefee6c4 --protocol tcp --port 22 --cidr 0.0.0.0/0



aws ec2 authorize-security-group-ingress --group-id sg-0ab6837b5aefee6c4 --protocol tcp --port 80 --cidr 0.0.0.0/0

aws ec2 authorize-security-group-ingress --group-id sg-0ab6837b5aefee6c4 --protocol tcp --port 3000 --cidr 0.0.0.0/0




7. AWS CLI로 EC2 인스턴스 생성 및 기동

1) 사용 중인 EC2 서버의 AMI ID 복사 

aws 콘솔 > ec2 인스턴스 > 인스턴스 클릭 > 세부정보탭 > AMI ID 복사

ami-04ea5b2d3c8ceccf8




2) 서브넷 id 복사 

aws 콘솔 > ec2 인스턴스 > 인스턴스 클릭 > 인스턴스 요약 > 서브넷 ID 복사 

subnet-0af27160b602573f4



3) ec2 생성 및  기동 (기존의 ec2옵션을 활용하여 새로운 인스턴스 생성[복사아님])

aws ec2 run-instances

  (기본 필요 옵션)

  --image-id : AMI ID -> ami-04ea5b2d3c8ceccf8

  --instance-type : 인스턴스 타입  -> t2.micro

  --security-group-ids : 보안 그룹 ID  -> sg-0ab6837b5aefee6c4

  --key-name : 키 이름(key-pair)  -> test_cli_key

  --subnet-id : 서브넷 ID(VPC내에 있는 subnet을 구분하는 값)

    -> subnet-0af27160b602573f4


> (여러줄)

aws ec2 run-instances 

--image-id ami-04ea5b2d3c8ceccf8

--instance-type t2.micro 

--security-group-ids sg-0ab6837b5aefee6c4

--key-name test_cli_key

--subnet-id subnet-0af27160b602573f4


(한줄)

aws ec2 run-instances --image-id ami-04ea5b2d3c8ceccf8 --instance-type t2.micro --security-group-ids sg-0ab6837b5aefee6c4 --key-name test_cli_key --subnet-id subnet-0af27160b602573f4




* 인스턴스 id 복사 (복사한 인스턴스)

i-07388da36cbad20ba


4) ec2 인스턴스 기동을 위한 태그 설정

 (aws ec2 create-tag)

aws ec2 create-tags --resources i-07388da36cbad20ba --tags Key=Name,Value=First-ec2-CLI




5) 탄력적 IP할당 및 연결

-할당(aws ec2 allocate-address)

aws ec2 allocate-address


(결과)

{

    "PublicIp": "13.209.101.137",

    "AllocationId": "eipalloc-06f6948558d7177c9",

    "PublicIpv4Pool": "amazon",

    "NetworkBorderGroup": "ap-northeast-2",

    "Domain": "vpc"

}


AllocationId 복사

eipalloc-06f6948558d7177c9



6) 할당된 탄력적 IP와 인스턴스 연결 ( aws ec2 associate-address )

aws ec2 associate-address --allocation-id eipalloc-06f6948558d7177c9 --instance-id i-07388da36cbad20ba

(결과)

{

    "AssociationId": "eipassoc-03333bbe919071233"

}




* AWS CLI 인스턴스 정보 확인 방법

- 인스턴스 리스트 전체

aws ec2 describe-instances   



- 특정 인스턴스

aws ec2 describe-instances --instance-id  i-07388da36cbad20ba



8. AWS CLI로 EC2 인스턴스 정지 {삭제=(종료) (돈나감)}

 - 정지(stop-instances)

aws ec2 stop-instances --instance-ids i-07388da36cbad20ba


 - 삭제(terminate-instances) 

aws ec2 terminate-instances --instance-ids i-07388da36cbad20ba




8. AWS EC2 탄력적 IP 제거

- 네트워크 및 보안 > 탄력적 ip 

- 탄력적 ip에 생성된 ip가 있다면 제거 목록에 생성된 ip 체크 > (작업 > 릴리즈 > 릴리즈)

 


* 종료된 인스턴스는 삭제된것임 (종료 후 시간이 지나면 없어짐)

댓글

T O P