DevOps 자동화 이해하기 1 (TerraForm 실습)

manopickax·2023년 6월 2일

AWS_OSS_EDU

목록 보기
2/3
post-thumbnail
작가 starline 출처 Freepik

AWS시리즈의 목적은 클라우드와 DevOps를 이해하는 것 입니다.

이번 게시글에서는 DevOps의 자동화와 테라폼 실습을 진행하겠습니다.

SRE

  • 애플리케이션을 빌드하고 유연하게 배포하고, 이를 모니터링할 수 있는 플랫폼

  • 이러한 플랫폼 위에서 개발자들이 스스로 배포, 운영을 하도록 하는 것이 목표

  • DevOps를 현실적으로 반영 가능하게 하기 위한 가이드 == SRE

IaC

컴퓨터에서 읽을 수 있는 정의 파일을 사용하여 클라우드 인프라르 관리하고 프로비저닝하는 프로세스이며, 실행 가능한 ‘문서’

자동으로 작업하기에 속도 품질 비용면에서 효율적이다.

IaC 도구로는 TerraForm이 있으며 후술



왜 우리는 DevOps를 자동화 해야할까 ?



DevOps 자동화의 필요성

  • 자동화시 장점

    최대한 사람의 손길이 덜 가도록 동작하게 만드는 것이 가능
    이는 소규모팀으로 서비스를 운영할 수 있을 것이고 효율적인 면에서도 좋을 것이다.

  • 자동화를 위한 요구 조건

    어떻게 자동화 할 것인가?
    어떤 행동을 취하는 조건을 어떻게 만들 것인가?



이제 클라우드 인프라 자동화, 관리 도구인 TerraForm을 활용해 실습해보고 자동화를 맛보도록 하겠습니다.

출처 하시코프

TerraForm

  • 하시코프에서 개발중인 클라우드 IaC 도구이다.

장점

  • 자동화 - 서버를 코드로 생성하기에 서버운영 및 관리가 모두 자동화
  • 속도 & 안전 - 수동으로 작업하는 것보다 훨씬 빠르며 실수 방지
  • 문서화 - 모든 인프라가 코드로 기록 및 관리
  • 형상관리 - git을 통해 형상관리가 가능, 인프라의 변경기록을 볼 수 있음
  • 테스트 - plan을 통한 서버 실행전 테스트가 가능하다.

TerraForm 기본 구성 개념

  • 프로비저닝(provisioning) - 준비단계, 준비 작업
  • 공급자(provider) - TerraForm과 외부 서비스 연결 기능
  • 계획(plan) - TerraForm 프로젝트가 실제로 적용 가능한지 확인
  • 적용(apply) - TerraForm 프로젝트를 실제로 적용

TerraForm 진행 순서

출처 하시코프
  1. 코드 작성
  2. terraform init(공급자 생성 / 인프라를 프로비저닝 및 관리)
  3. terraform plan (장바구니 담기/ 테스트)
  4. terraform apply (실제구매/ 서버 구동)

매우 간단한 진행 순서를 가지고 있다.

즉, TerraForm을 활용하면 자동화 뿐만 아니라 서버 관련 데이터도 문서화 하여 볼 수 있다.



TerraForm 직접 실습


먼저 AWS 와 테라폼을 통신하기 위해 액세스키가 필요하다.
클라우드 액세스키가 유출되면 금전적인 피해를 볼 수 있다고 해서 IAM 계정을 따로 만들어 사용하였음

main.tf에 액세스키를 작성하여 AWS와 테라폼이 통신 되도록 함

절차대로 terraform init - terraform plan - terraform apply 실행

인스턴스가 잘 생성된 모습

야옹이 세상

Terraform을 활용해 자동화로 쉽게 서버를 구축하였음



오류 사항

terraform apply 중에 오류가 발생하였다.

Error: Error launching source instance: Unsupported: 
You requested instance type (t2.micro) is not supported in your 
requested Availability Zone (ap-northeast-2b).
Please retry your request by not specifying 
an Availability Zone or choosing ap-northeast-2a, ap-northeast-2c.

일단 에러메시지를 해석해보자

요청한 인스턴스 유형(t2.micro)은 ap-northwest-2b에서 지원되지 않습니다.
가용성 영역을 지정하지 않고 다시 시도하거나 ap-northeast-2a, ap-northeast-2c를 선택하세요.

t2.micro가 ap-northeast-2b에는 지원이 되지 않았고 내가 가용영역을 제대로 설정하지 않았기에 자동으로 테라폼이 b를 선택하면서 문제가 생긴 것이다.

즉 이 문제는 ap-northeast-2b에 지원되는 인스턴스로 수정하거나
가용영역을 ap-northeast-2a, ap-northeast-2c로 수정하면 해결 될 것이다.

이 사진을 보면 t3.micro의 가용영역이 ap-northeast-2a, ap-northeast-2c, ap-northeast-2d, ap-northeast-2b인 것으로 확인할 수 있다.
인스턴스 타입을 t3.micro으로 수정하니 잘 실행 되었다.

가용영역을 따로 수정하는 방법도 잘 수행되는 것을 확인 하였다.



최종적으로 테라폼은 인프라 자동화 도구로, 클라우드 인프라를 코드로 관리할 수 있게 해준다.

실제 구동 중인 사이트

profile
땅굴파기

0개의 댓글