[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 체크 > (작업 > 릴리즈 > 릴리즈)
* 종료된 인스턴스는 삭제된것임 (종료 후 시간이 지나면 없어짐)
댓글
댓글 쓰기