팀에서는 다양한 public cloud에서 kubernetes를 서비스가 가능한 패키지인 tks를 만들고 있고 현재는 aws를 중심으로 기능들을 만들어 오픈 준비중이다. 주요 기술은 cluster api를 통해 필요한 기반인프라를 제어하고 k8s를 만들어 내는것이다. 하지만 cluster api가 클라우드 전체를 조작할 수 있게 하는 것이 아니므로, 이에 대한 보완으로 crossplane을 사용하여 인프라를 제어하고 있다. 하지만 crossplane에도 한계가 있고 이에 대한 지원을 위해 aws의 cli를 통한 직접적인 제어가 필요한 경우가 발생하였다. 따라서 cli 사용하는 방법을 알아보게 되었고 이를 활용하여 security group을 제어하고 이를 프로젝트에 적용하였다. 본 페이지에서 그 내용을 상세하게 공유하고자 한다.

AWS Command Line Interface?

AWS CLI는 콘솔환경에서 명령어를 통해 AWS 서비스와 상호 작용할 수 있는 오픈 소스 도구이다. 최소의 구성을 갖은 AWS CLI를 사용하여 브라우저 기반인 AWS Management Console에서 제공하는 것과 동일한 수준이 기능을 명령어를 통해 실행할 수 있다.

CLI는 모든 서비스에 대한 서비스를 지원하도록 확장하는 것을 원칙으로 작동하며 신규 서비스나 기능이 추가하면 180일 이내로 CLI를 통해서도 사용할 수 있도록 하는 것을 원칙으로 한다.

Quick Start

CLI 설치

라이브러리 체크 필요: glibc, groff, less

다운로드 및 설치

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

Docker를 통한 사용

컨테이너 엔진 준비되어 있어야 함

$ sudo docker run --rm -it amazon/aws-cli command

계정관련 설정하기

(option1) cli를 통한 로그인

터미널에서 상호작용하며 계정정보를 입력한다.

$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json

(option2) 파일을 사용한 로그인

설정파일을 만들어두고 이를 옵션으로 준다. (설정관련 상세내역은 아래 Configuration 파트에서 살펴본다.)