목차
1. AWS CLI
2. AWS CLI 설치하기 (macOS)
3. CLI를 이용하여 AWS EC2 인스턴스 생성하기
1. AWS CLI
AWS-CLI는 터미널에서 다양한 AWS 서비스를 관리하고 상호 작용할 수 있도록 Amazon Web Services에서 제공하는 도구이다.
설치를 하고 나면 `aws` 명령어를 이용한 작업을 할 수 있다.
2. AWS CLI 설치하기 (macOS)
mac OS 환경에서 AWS CLI 설치하기
1. curl 명령을 이용하여 파일을 다운로드한다.
$ curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
2. 다운로드한 .pkg 파일을 소스로 지정하여 표준 macOS `installer` 프로그램을 실행한다.
`-pkg` 파라미터를 사용하여 설치할 패키지의 이름을 지정하고 `-target /` 파라미터를 사용하여 패키지를 설치할 드라이브를 지정한다.
파일은 /usr/local/aws-cli에 설치되고 /usr/local/bin에 symlink가 자동으로 만들어진다.
해당 폴더에 쓰기 권한을 부여하려면 명령에 `sudo`를 포함해서 작성한다.
$ sudo installer -pkg ./AWSCLIV2.pkg -target /
디버그 로그가 /var/log/install.log에 기록된다.
3. 설치 확인하기
$ which aws
# /usr/local/bin/aws
$ aws --version
#aws-cli/2.11.4 Python/3.11.2 Darwin/20.6.0 exe/x86_64 prompt/off
3. CLI를 이용하여 AWS EC2 인스턴스 생성하기
기존에 console(GUI환경)을 이용한 방법은 `Image(OS) -> keypair -> 보안그룹` 순으로 생성했지만
CLI환경을 이용한 방법은 `keypair -> 보안그룹 -> Image(OS)` 순으로 생성한다.
3-1. AWS-CLI 초기 세팅
# AWS-CLI설치를 확인한다.
$ aws --version
# AWS 초기 세팅
$ aws configure
# 설정내용 확인
$ aws configure list
1. 터미널에 `aws configuere` 명령어를 입력한다.
2. 세팅을 위한 데이터를 입력한다.
- 액세스 키 : IAM의 Access Key (생성했던 .csv 파일)
- 시크릿 키 : IAM의 Secret Access Key (생성했던 .csv 파일)
- 리전 이름 : 접속할 지역의 고유코드 (서울 : `ap-northeast-2`)
- 데이터 타입 (`json`)
3. `aws configure list` 를 이용하여 설정한 내용 확인하기
3-2. key-pair 만들기
Keypair(`.pem`)을 생성한다.
# keypair 생성
$ aws ec2 create-key-pair --key-name [키이름] --query 'KeyMaterial' --output text > [pem파일이름]
결과로 `.pem` 파일이 생성된다. 이 파일은 외부로 노출되지 않도록 관리한다.
키가 AWS에 저장되지 않고 생성될 때만 검색할 수 있다. 나중에 복구할 수 없기 때문에 잘 저장해서 보관하고 잃어버리면 새 키 페어를 생성해야 한다.
3- 3. 사용자만 키 파일을 읽을 수 있도록 설정
$ chmod 400 [pem파일이름].pem
만약 키페어를 다시 만들어야 한다거나, 수정을 원할 때는 삭제했다가 재생성을 한다.
# keypair 삭제
$ aws ec2 delete-key-pair --key-name [pem파일이름]
# keypair 확인
$ aws ec2 describe-key-pairs --key-name
3- 4. 보안그룹 설정하기
# 보안그룹 설정
$ aws ec2 create-security-group --group-name [보안 그룹 이름] --description ["보안그룹설명"]
# 보안그룹 삭제
$ aws ec2 delete-security-group --group-id [보안그룹 이름]
리턴된 값은 해당 보안그룹의 `고유식별자`이므로 이를 이용해서 해당 그룹을 알 수 있기 때문에 중요하다.
{
"GroupId": "sg-~~~~~~"
}
3- 5. 보안그룹 규칙 설정
보안 그룹을 확인해 보면 인바운드 규칙과 아웃바운드 규칙이 있다.
쉽게 생각하면 인바운드 규칙은 외부에서 인스턴스로 들어올 때 방화벽을 통과할 수 있는 트래픽의 규칙을 정해줄 수 있고, 반대로 아웃바운드 규칙은 인스턴스에서 외부로 내보낼 때의 트래픽 규칙을 정하는 것이다.
외부로 내보내는 아웃바운드 규칙의 경우 나가는 모든 트래픽을 허용하지만, 인바운드 규칙은 사용자에 따라 다르게 지정해 준다.
지금 세팅환경은 80, 22번 포트에 대한 트래픽을 허용하기 위해서 규칙을 추가해 주면 된다.
# 어떤그룹인지? 어떤 프로토콜인지? 어떤 포트인지? 어떤 IP인지?
# 80번 포트
$ aws ec2 authorize-security-group-ingress --group-id [보안그룹 식별자] --protocol tcp --port 80 --cidr 0.0.0.0/0
# 22번 포트
$ aws ec2 authorize-security-group-ingress --group-id [보안그룹 식별자] --protocol tcp --port 22 --cidr 0.0.0.0/0
3- 6. Image(OS) 지정 및 인스턴스 생성
$ aws ec2 run-instances
--image-id [image고유값]
--count [생성할 인스턴스 개수]
--instance-type [타입]
--key-name [키페어 이름(파일이름 아님)]
--security-group-ids [보안그룹 고유식별자]
image 고유 id값 확인하기
로그인된 상태에서...
https://ap-northeast-2.console.aws.amazon.com/ec2/home?region=ap-northeast-2#AMICatalog
https://ap-northeast-2.console.aws.amazon.com/ec2/home?region=ap-northeast-2#AMICatalog
ap-northeast-2.console.aws.amazon.com
사용할 image는 ubuntu 20.04 LTS 버전을 이용할 것이다.
`ami-0e735aba742568824`
'AWS' 카테고리의 다른 글
Nginx를 이용한 AWS 배포 (1) | 2023.03.21 |
---|---|
AWS EC2를 이용한 서비스 배포 - 기초 2편 (0) | 2023.01.30 |
AWS EC2를 이용한 서비스 배포 - 기초 1편 (0) | 2023.01.27 |