CLI 명령어 vs 코드

날아올라돼지야·2024년 10월 13일
0

클라우드 마스터

목록 보기
4/17

CLI 명령어Command Line Interface에서 입력하는 명령어로, AWS 리소스를 관리하고 작업을 수행하는 데 사용됩니다. AWS CLI 명령어는 터미널이나 명령 프롬프트에서 AWS API를 호출하여, AWS 리소스(예: EC2, S3, IAM 등)에 대한 작업을 직접 수행할 수 있게 해줍니다.

CLI 명령어 기본 구조

AWS CLI 명령어는 세 가지 주요 구성 요소로 이루어져 있습니다:
1. 서비스 이름: 어느 AWS 서비스에 대해 작업을 수행할지 결정.

  • 예: ec2, s3, iam
  1. 작업(action): 어떤 작업을 수행할 것인지 결정.
    • 예: describe-instances, start-instances, create-bucket
  2. 옵션 또는 파라미터: 작업을 수행할 때 필요한 추가 정보.
    • 예: --instance-ids i-1234567890abcdef0, --bucket my-bucket

예시:

EC2 인스턴스 목록을 조회하는 명령어:

aws ec2 describe-instances

EC2 인스턴스 시작 명령어:

aws ec2 start-instances --instance-ids i-1234567890abcdef0

S3 버킷에 파일 업로드 명령어:

aws s3 cp myfile.txt s3://my-bucket/

CloudFormation이나 Terraform도 같은 명령을 쓰는가?

아니요, CloudFormation이나 Terraform은 AWS CLI와 같은 명령어를 사용하지 않습니다.
이 두 도구는 인프라를 코드로 관리하는 도구로, AWS 리소스를 코드(구성 파일)로 정의하고 관리하는 방식입니다. AWS CLI는 터미널에서 명령어로 직접 AWS 리소스를 관리하는 방식이고, CloudFormationTerraform코드로 인프라를 정의하고 이를 실행하여 리소스를 배포하는 방식입니다.

CloudFormation:

  • JSON 또는 YAML 형식으로 템플릿 파일을 작성하여, AWS 리소스를 정의합니다.
  • CloudFormation은 템플릿에 정의된 리소스를 자동으로 생성, 업데이트, 삭제할 수 있습니다.

CloudFormation 템플릿 예시 (YAML):

Resources:
  MyEC2Instance:
    Type: "AWS::EC2::Instance"
    Properties:
      ImageId: "ami-12345678"
      InstanceType: "t2.micro"
      KeyName: "MyKeyPair"

이 템플릿을 AWS CloudFormation에 제출하여 실행하면, EC2 인스턴스가 생성됩니다. CLI 명령어와는 방식이 다르며, 인프라를 코드로 관리하는 방식입니다.

Terraform:

  • HCL(HashiCorp Configuration Language)이라는 언어로 인프라를 정의합니다. Terraform은 멀티 클라우드 지원이 가능하며, AWS뿐만 아니라 다른 클라우드 리소스도 정의할 수 있습니다.

Terraform 구성 파일 예시:

provider "aws" {
  region = "us-east-1"
}

resource "aws_instance" "example" {
  ami           = "ami-12345678"
  instance_type = "t2.micro"
  key_name      = "MyKeyPair"
}

Terraform은 terraform apply 명령을 통해 이 코드를 실행하고, EC2 인스턴스를 생성합니다.

비교:

  • CLI: 직접 명령어를 실행하여 리소스를 관리.
  • CloudFormation & Terraform: 인프라를 코드로 작성하여 이를 기반으로 리소스를 배포, 관리.

AWS CLI, CloudFormation, Terraform을 공부하는 방법

1. AWS CLI 공부 방법

CLI 명령어는 AWS 공식 문서와 실습을 통해 쉽게 익힐 수 있습니다. 터미널을 사용하는 방법에 익숙해지면, 각 서비스의 CLI 명령어를 실행하는 것이 어렵지 않습니다.

  • AWS CLI 공식 문서: AWS CLI의 각 서비스 명령어와 사용법을 공식 문서에서 학습할 수 있습니다. AWS CLI 공식 문서
  • 실습 환경: AWS Free Tier 계정을 사용하여, 실습을 통해 직접 EC2, S3, IAM 등 다양한 리소스를 CLI로 생성, 관리해보는 것이 좋습니다.
  • 자격 증명 설정: aws configure 명령을 사용해 IAM 자격 증명을 설정하고 AWS 리소스에 접근하는 과정을 실습해 보세요.

2. CloudFormation 공부 방법

CloudFormation인프라를 코드로 관리하는 방식이므로, JSON 또는 YAML 형식으로 템플릿을 작성하는 법을 배우는 것이 중요합니다.

  • CloudFormation 공식 문서: AWS CloudFormation 템플릿 구문과 리소스 타입에 대한 정보는 AWS 공식 문서를 통해 학습할 수 있습니다. AWS CloudFormation 공식 문서
  • 템플릿 작성 및 실습: 작은 리소스부터 시작해 점차 복잡한 템플릿을 작성해 보는 것이 좋습니다. 예를 들어, S3 버킷을 만들고, EC2 인스턴스 등을 템플릿으로 정의하는 실습을 해보세요.

3. Terraform 공부 방법

Terraform은 AWS 리소스뿐만 아니라 여러 클라우드 제공자의 인프라를 코드로 관리할 수 있는 도구입니다. HCL 언어로 구성 파일을 작성하는 것이 중요합니다.

  • Terraform 공식 문서: Terraform에서 AWS 리소스를 관리하는 방법과 HCL 언어 사용법은 공식 문서에서 확인할 수 있습니다. Terraform 공식 문서
  • 실습 환경: Terraform을 설치하고, EC2 인스턴스나 S3 버킷을 생성하는 구성 파일을 작성하고 적용하는 실습을 해보세요. terraform init, terraform apply 명령을 실행하며 인프라 배포 과정을 익힐 수 있습니다.

요약:

  1. CLI 명령어는 터미널에서 명령어를 입력하여 AWS 리소스를 직접 관리하는 방식입니다.
  2. CloudFormationTerraform은 인프라를 코드로 정의하여 관리하는 방식으로, CLI 명령어와는 다른 방식으로 동작합니다.
  3. 공부 방법은 AWS 공식 문서와 실습을 병행하는 것이 좋습니다. 직접 AWS Free Tier 환경에서 실습해보면서 익히는 것이 가장 효과적입니다.
profile
무슨 생각하며 사니

0개의 댓글