AWS CLI로 EC2 인스턴스 생성

민수·2023년 3월 20일
0
post-thumbnail

IAM 사용자 추가

IAM 사용자 추가

  • iam 검색

  • 사용자 -> 사용자 추가 클릭

  • 사용자 이름 지정 -> 다음 클릭

    그룹에 사용자 추가 : 그룹에 있는 권한을 똑같이 부여 함
    권한 복사 : 다른 사용자의 권한을 똑같이 부여 함
    직접 정책 연결 : 직접 권한을 선택해서 부여함

  • 직접 정책 연결 선택

  • ec2와 acces 필터

  • 사용자 생성 클릭

  • 생성된 사용자 이름 클릭

  • 보안 자격 증명 탭 클릭 -> 콘솔 액세스 활성화 클릭

  • 콘솔 액세스 활성화 선택 -> 사용자 지정 암호 선택 -> 사용할 암호 입력 -> 적용 클릭

  • .csv 파일 다운로드 클릭 -> 닫기

  • 다운로드 한 파일은 따로 보관해 둔다.

액세스 키 만들기

  • 사용자 -> 보안 자격 증명 클릭

  • 아래로 스크롤 후 액세스 키 만들기 클릭

  • Command Line Interface(CLI) 선택

  • 체크 박스 선택 -> 다음 클릭

  • 액세스 키 만들기 클릭

  • .csv 파일 다운로드

  • AWS CLI로 EC2 인스턴스를 만들기 위해서 꼭 필요한 파일임

  • 절대 노출되서는 안됨

  • 잘 보관해 놓아야 함

IAM 유저 생성 확인

  • iam -> 사용자 -> 사용자 이름 클릭

  • 콘솔 로그인 링크 복사

  • IAM 사용자로 로그인

설치

AWS CLI Install

sudo apt install unzip

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

설치 확인

aws --version
# aws-cli/2.11.4 Python/3.11.2 Linux/5.15.90.1-microsoft-standard-WSL2 exe/x86_64.ubuntu.22 prompt/off

AWS 기본 설정

aws configure
  • AWS Access Key ID : 생성한 IAM 유저의 Access 키를 입력한다. (cloudsprite_accessKey.csv의 Access key ID)
  • AWS Secret Access Key : 생성한 IAM 유저의 Secret 키를 입력한다. (cloudsprite_accessKey.csv의 Secret access key)
  • Default region name : 기본으로 설정할 리전을 입력한다. (ap-northeast-2)
  • Default output format : 결과를 리턴 받을 때 형식을 지정한다. (json)

기본 설정 확인

aws configure list

KeyPair

  • EC2 인스턴스에 SSH 접속을 하기 위해서 꼭 필요하다.

KeyPair 생성

aws ec2 create-key-pair --key-name myKeyPair --key-type rsa --key-format pem --query "KeyMaterial" --output text > myKeyPair.pem
  • --key-name : 공개 키의 이름을 지정한다. (최대 255자)
  • --key-type : 키 타입을 지정한다. rsa 혹은 ed25519 (지정하지 않으면 기본적으로 rsa로 지정됨)
  • --key-format : 키 포맷을 지정한다. pem 혹은 ppk (지정하지 않으면 기본적으로 pem으로 지정됨)
  • --query "KeyMaterial" : 개인키를 출력한다.
  • --output text > myKeyPair.pem : 출력된 개인키를 지정한 파일(myKeyPair.pem)로 저장한다.

최소 권한 부여

  • macOS나 Linux를 사용하면 보안을 위해서 최소 권한을 부여해 줘야 한다.
chmod 400 myKeyPair.pem

KeyPair 확인

aws ec2 describe-key-pairs

aws ec2 describe-key-pairs --key-name myKeyPair

aws ec2 describe-key-pairs --key-name myKeyPair --output table

출력 결과가 VIM에 나오는 것 막는 방법

echo 'export AWS_PAGER=""' >> ~/.zshrc
source ~/.zshrc

KeyPair 삭제

aws ec2 delete-key-pair --key-name myKeyPair
  • aws에 등록된 KeyPair를 삭제할 수 있다.
  • EC2 인스턴스에 SSH로 접속하기 위해서는 KeyPair가 꼭 필요하다.

보안 그룹

  • 방화벽이라 볼 수 있다.
  • 인 바운드, 아웃 바운드 규칙을 설정 할 수 있다.

보안 그룹 생성

aws ec2 create-security-group --group-name front-end-sg --description "front-sg"
  • --group-name : 보안 그룹 이름을 지정한다.
  • --description : 보안 그룹의 설명을 지정한다.
  • 생성 후 리턴 값인 GroupId가 중요하다.
  • 해당 값을 복사해 놓아야 한다.
# 리턴 값
{
    "GroupId": "sg-0bff0c6070956fe56"
}

보안 그룹 제거

aws ec2 delete-security-group --group-id sg-0bff0c6070956fe56

보안 그룹에 규칙 추가

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

aws ec2 authorize-security-group-ingress --group-id sg-0bff0c6070956fe56 --protocol tcp --port 80 --cidr 0.0.0.0/0
  • --group-id : 보안 그룹 식별자이다. 어떤 보안 그룹에 규칙을 추가할 지 지정한다.
  • --protocol : tcp | upd | icmp
  • --port : TCP/UDP일 경우 허용할 포트 범위이다.
  • --cidr : CIDR 형식의 IPv4 주소 범위이다.

EC2 인스턴스 생성

AMI 찾기

  • AMI : Amazon Machine Image
  • AWS console 접속 -> EC2 -> AMI 카탈로그 -> 선택된 부분 복사(AMI ID)

EC2 인스턴스 생성

aws ec2 run-instances --image-id ami-0e735aba742568824 --count 1 --instance-type t2.micro --key-name myKeyPair --security-group-ids sg-0bff0c6070956fe56
  • --image-id : AMI ID
  • --count : 시작할 인스턴스 수
  • --instance-type : 인스턴스 유형 (프리티어 t2.micro)
  • --key-name : KeyPair 이름
  • --security-group-ids : 보안 그룹 ID

EC2 접속 확인

ssh -i "myKeyPair.pem" ubuntu@ec2-54-180-102-111.ap-northeast-2.compute.amazonaws.com

참고

AWS CLI Command Reference

0개의 댓글