목차
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 인스턴스 생성
기존 콘솔(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 비밀 액세스 키(생성된 .csv 파일)
– 지역 이름: 연결할 지역의 고유 코드(서울: `ap-northeast-2`)
– 데이터 타입 (`json`)
3. `aws configure list`를 사용하여 설정한 내용을 확인한다.
3-2. 키 페어 만들기
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 (보안그룹 고유식별자)
이미지별 id 값 확인
로그인하는 동안…
https://ap-northeast-2.console.aws.amazon.com/ec2/home?region=ap-northeast-2#AMICatalog
사용된 심상은 우분투 20.04 LTS 버전을 사용한다.
`ami-0e735aba742568824`