AICC 과정 정리
Ansible, Terraform, ELK Stack
미르아
2024. 12. 30. 16:16
728x90
1. Ansible
정의
- Ansible은 오픈 소스 IT 자동화 도구입니다.
- 주로 서버 설정 관리, 애플리케이션 배포, 네트워크 설정 등을 자동화하기 위해 사용됩니다.
특징
- Agentless: 별도의 에이전트를 설치하지 않아도 SSH 연결을 통해 서버를 관리합니다.
- YAML 형식: 사람이 읽기 쉬운 Playbook(YAML 파일)로 구성됩니다.
- Idempotency: 동일 작업을 여러 번 실행해도 한 번 실행한 것과 같은 결과를 보장.
2. Terraform
정의
- Terraform은 **인프라를 코드로 관리(IaC)**할 수 있는 도구입니다.
- 클라우드 리소스(예: 서버, 데이터베이스, 로드밸런서)를 코드로 선언하고 자동화된 방식으로 생성/관리합니다.
특징
- Multi-Cloud 지원: AWS, Azure, GCP 등 다양한 클라우드 플랫폼과 호환.
- State Management: 현재 인프라 상태를 파일로 저장하여 추적 가능.
- 모듈화: 재사용 가능한 모듈을 생성하여 복잡한 인프라도 쉽게 관리.
3. ELK Stack
정의
- ELK는 Elasticsearch, Logstash, Kibana의 약자입니다.
- 주로 로그 데이터 분석 및 시각화를 위해 사용됩니다.
구성 요소
구성 요소 설명
Elasticsearch | 검색 및 분석을 위한 데이터 저장소. |
Logstash | 다양한 소스에서 데이터를 수집, 처리, 변환 후 Elasticsearch로 전송. |
Kibana | Elasticsearch 데이터를 기반으로 대시보드와 시각화를 제공합니다. |
표로 정리
도구 주요 역할 사용 목적 설치 및 설정
Ansible | 서버/네트워크 설정 자동화 도구 | 서버 설정, 애플리케이션 배포 자동화 | 1. 로컬 PC에 설치 2. SSH 키 생성 및 대상 서버에 배포 3. Playbook 작성 (YAML 형식) 4. 명령 실행: ansible-playbook |
Terraform | 인프라 관리 자동화 | 클라우드 리소스 생성/관리 자동화 | 1. Terraform 설치 2. 클라우드 제공업체 API 키 설정 3. .tf 파일 작성 4. 명령 실행: terraform apply |
ELK Stack | 로그 데이터 분석 및 시각화 | 로그 수집, 저장, 시각화 | 1. Docker Compose로 Elasticsearch, Logstash, Kibana 설치 2. 로그 소스 설정(Logstash) 3. Kibana 대시보드 설정 |
Ansible, Terraform 설치 방법
Ansible
- 설치
- bash 코드 복사 sudo apt update sudo apt install ansible -y
- SSH 키 생성 및 배포
- bash 코드 복사 ssh-keygen -t rsa ssh-copy-id user@target-server
- Playbook 작성 및 실행실행: ansible-playbook playbook.yml
- yaml 코드 복사 - name: 설치 테스트 hosts: all tasks: - name: Apache 설치 apt: name: apache2 state: present
Terraform
- 설치
- bash 코드 복사 sudo apt update sudo apt install -y wget unzip wget <https://releases.hashicorp.com/terraform/>/terraform__linux_amd64.zip unzip terraform__linux_amd64.zip sudo mv terraform /usr/local/bin/ terraform --version
- Terraform 초기화
- bash 코드 복사 terraform init
- 구성 파일 작성실행: terraform apply
- hcl 코드 복사 provider "aws" { region = "us-west-1" } resource "aws_instance" "example" { ami = "ami-0c55b159cbfafe1f0" instance_type = "t2.micro" }
728x90