Cloud/AWS

[ubuntu] AWS CLI 설치 및 EC2 생성 ssh접속

Jen'_' 2021. 5. 5. 00:19
반응형

 

sources.list 변경

우분투를 설치할때 지역을 한국으로 설정하고 언어를 한국어로 설정하면  /etc/apt/sources.list에 빨간색으로 http://kr.archive.ubuntu.com/ubuntu/로 나온다. 

이러면 간혹 설치할 수 없다고 오류가 뜨거나 저장소에서 해당패키지에 대한 정보를 가지고 있지 않아 오류가 뜬다http://kr.archive.ubuntu.com/ubuntu/ -> http://ftp.daumkakao.com/ubuntu/로 변경 해줘야 한다

 

$ sudo /etc/apt/sources.list
:%s/kr.archive.ubuntu.com/ftp.daumkakao.com

명령어로 문자열을 치환해주자!

 

$ sudo apt-get update

업데이트가 정상적으로 된다 

 

python 설치 

ubuntu minimal에 python이 설치가 안되어 있으므로 먼저 설치해 줍시다 

그리고 pip로 aws-cli 설치

 

$ sudo apt install python-pip
$ pip install --upgrade --user awscli
$ sudo apt install unzip
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
$ unzip awscliv2.zip
$ sudo ./aws/install

 

ssh 활성화

ssh가 이미 설치되어 있지만 활성화 상태는 아니다.

keygen으로 키를 생성해야 활성화 시킬 수 있다.

$ sudo ssh-keygen -A
$ sudo service ssh start
$ sudo vi /etc/ssh/sshd_config
PasswordAuthentication yes
no -> yes 로 수정하고 저장하고 나온다

$ sudo service ssh restart

 

AWS IAM

aws 리소스를 사용할 수 있는 사용자를 만들어야 한다

기존 정책 직접 연결 > AdministratorAccess 정책 추가 하면 모든 권한이 들어간다

그렇게 생성한 생성자의 .csv 파일을 다운받아 id와 secret key를 저장해 놓자 

 


aws cli 설정 

설정

$ aws configure

저장한 id와 secret key를 입력, 그 다음 리전 선택, 서울리전은 ap-northeast-2 이다.

output format은 엔터로 넘어가도됨.

AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]:
Default output format [None]:

 

VPC 확인 명령어 

지금은 기본 vpc밖에 없는데 vpc-id 를 적어 놓자

$ aws ec2 describe-vpcs

 

보안그룹

보안그룹 생성 명령어

$ aws ec2 create-security-group  --group-name <보안그룹이름>  --description "<설명>"  --vpc-id <기본 vpc-id>

ex) aws ec2 create-security-group  --group-name HelloWorld  --description "Hello World Demo"  --vpc-id vpc-d29711b9

 

인바운드 규칙 넣기

$ aws ec2 authorize-security-group-ingress --group-name <보안그룹이름>  --protocol <프로토콜종류> --port <포트번호> --cidr <허락ip>

ex) aws ec2 authorize-security-group-ingress --group-name HelloWorld  --protocol tcp --port 22 --cidr 0.0.0.0/0

 

생성한 보안그룹 확인

$ aws ec2 describe-security-groups --group-name <보안그룹이름> --output text

ex) aws ec2 describe-security-groups --group-name HelloWorld --output text

 

 

키페어 생성

.ssh/ 하위에 키를 만들어야 한다

$ mkdir .ssh/

 

키 생성하고 .ssh/ 하위에도 저장

$ aws ec2 create-key-pair --key-name <키이름> --query 'KeyMaterial' --output text > ~/.ssh/<키이름>

ex) aws ec2 create-key-pair --key-name jenkey --query 'KeyMaterial' --output text > ~/.ssh/jenkey.pem

 

EC2 인스턴스 생성

$ aws ec2 run-instances --instance-type <인스턴스타입> --key-name <키이름> --security-group-ids <생성한보안그룹의id> --image-id <이미지id>

ex) aws ec2 run-instances --instance-type t2.micro --key-name jenkey --security-group-ids sg-0feef5e8cdd81921b --image-id ami-0f2c95e9fe3f8f80e

 

ssh 접속

권한이 너무 많으면 ssh 접속이 안됨

$ chmod 400 .ssh/<키이름>

ex) chmod 400 .ssh/jenkey.pem

 

인스턴스의 퍼블릭 DNS 주소 확인 

$ aws ec2 describe-instances --instance-ids <인스턴스id>  --query "Reservations[*].Instances[*].PublicDnsName"

ex) aws ec2 describe-instances --instance-ids i-0cb4863fcb351b89f  --query "Reservations[*].Instances[*].PublicDnsName"

 

키페어 이용해서 ssh 접속

$ ssh -i ~/.ssh/<키이름> ec2-user@퍼블릭dns주소 or 퍼블릭ip

ex) ssh -i ~/.ssh/jenkey.pem ec2-user@ec2-13-209-21-109.ap-northeast-2.compute.amazonaws.com

 

 

접속완료!

[ec2-user@ip-172-31-33-49 ~]$

 

 

 

반응형