[Terraform] aws-auth : Unauthorized 문제 해결
·
IaC
테라폼 aws-auth : Unauthorized 문제 트러블슈팅 테라폼을 사용하다 aws-auth 문제를 마주친 적이 있을 것이다.다음은 나의 문제 상황,, 문제상황Error: Have got the following error while validating the existence of the ConfigMap "aws-auth": Unauthorized 처음에는 내 IAM 권한에 있는 문제라고 생각했지만 아니었다.eks 모듈을 가져와 사용하던 상황에서 발생한 문제였기에 해당 레지스트리의 내용도 살펴봤지만 빠뜨리진 않았음. 그러다가 발견한 비슷한 상황..! https://github.com/terraform-aws-modules/terraform-aws-eks/issues/3108 ConfigMap..
[Terraform] 테라폼 모듈 사용법
·
IaC
모듈테라폼으로 리소스 생성을 위해 코드를 작성하다보면 작성되는 양이 많아질수록 코드의 반복이 많아진다. 이런 상황에서 Terraform 모듈은 인프라 구성의 코드 재사용성을 높여주고 유지보수를 쉽게 도와준다. 미리 만들어져있는 다양한 모듈들이 제공되고 있기 때문에(테라폼 레지스트리 참고) 이걸 사용해도 좋고 직접 만들어줘도 된다.모듈을 사용하면 Terraform 내부에 코드를 배치하고 코드 전체의 여러 위치에서 해당 모듈을 재사용할 수 있다. 모듈은 재사용, 유지 관리 및 테스트 가능한 Terraform 코드를 작성하는 핵심 요소  모듈 기본이런 구조에서 현재 mysql 모듈, webserver-cluster 모듈을 활용해보고자 한다.명령어를 실행하는 위치를 루트 모듈이라 하는데 루트 모듈은 어떤 정해..
[Terraform] 테라폼의 상태관리
·
IaC
현재 상태가 내가 원하는 상태가 아닐 때, 작업을 자동으로 처리해주는 것멱등성의 원리 테라폼의 상태(State)테라폼은 현재 상태 파일을 만들어서 그 파일의 내용과 생성하는 tf 파일의 내용을 비교해서 작업함멱등성을 보장하기 위한 파일을 state file이라고 부름공유패턴을 이용하여 상태 파일을 관리함 * 개인 프로젝트에서는 문제가 없지만 팀프로젝트라면 고려해야될 부분상태 파일을 위한 공유 저장소상태 파일 잠금(lock)상태 파일 격리 : 서로 다른 환경에서 state를 업데이트 할 수 있도록 해야함 상태 파일을 위한 공유 저장소git을 사용하면 안되는게 RDS와 같은 민감한 정보가 있으니 git에 올리는걸 추천하지 않음. 버전관리 추천 안함. 그래서 저장소 스토리지 서비스를 사용할 것을 권장(aws ..
[Terraform] 프로비저닝 도구와 테라폼 / 테라폼 사용하기
·
IaC
과거에는 개발과 운영을 분리하여 운영하고 수동 릴리스 방식을 사용하였는데 이 방식은 눈송이 서버나 버그를 증가시켰다. 요즘은 이런 문제를 방지하기 위해 많은 기업에서 클라우드와 자동화 도구를 사용하며 소프트웨어 작업에 집중하고 있음. 이러한 관점에서 DevOps의 개념이 나왔으며 데브옵스의 목표는 소프트웨어의 제공을 효율적으로 만드는 것이다. 데브옵스의 가치 중 하나인 자동화의 목표는 가능한 많은 소프트웨어를 자동화하는 것이다. 수동으로 실행하는 것이 아닌 코드를 통해 인프라를 관리하고자는 목표를 가진다. - 코드형 인프라IaC(Infrastructure as Code)의 기본 개념은 코드를 작성하고 실행하여 인프라를 정의, 배포, 업데이트 및 제거하는 것 IaC 도구를 범주화 하면 애드훅 스크립트, 구..
[Ansible] 앤서블의 변수 관리와 작업 제어, 파일 관리
·
IaC
변수 관리플레이북 변수새로운 값을 넣어 사용Ansible은 플레이에서 재사용할 수 있는 값을 저장하는데 사용하는 변수 지원변수는 여러 위치에 정의할 수 있음위치에 따라 우선순위가 있음. 우선순위가 높은 곳에 정의된 변수가 적용scope이 작을수록 우선순위가 높음. 범위 : inventory > playbook, 우선순위 : inventory Ansible에 설정할 수 있는 변수anisble-playbook에서 -e 옵션이 제일 우선순위가 높다. 아래로 갈수록 우선순위 높음https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable Us..
[Ansible] 플레이북 실행과 다중 플레이
·
IaC
플레이북 실행을 위해 필요한 파일Ansible은 configuraion 자동화 도구로, Ansible을 사용하기 위해서는 작성된 코드를 가진 파일이 필요하다. 구성파일, 인벤토리 파일, 플레이북 파일 사용자는 세가지 유형의 파일을 저장할 작업 디렉토리를 따로 생성하고 파일이나 혹은 하위 디렉토리로 위치  구성파일사용자는 Ansible을 사용하기 전에 연결 설정이나 권한 설정 등을 변경할 수 있다. Ansible의 동작방법을 설정하는 파일을 구성파일이라고 부르며 이 파일은 기본적으로 /etc/ansible/ansible.cfg 에 위치한다. 하지만 보통 일반적인 경우 사용자가 프로젝트별로 관리하기 위한 작업 디렉토리를 따로 생성하여 구성파일을 위치 시켜 관리한다.프로젝트별로 설정을 변경하고 싶다면 해당 프..
[Ansible] 가상머신으로 Ansible 실습 환경 구축하기 / Ansible 설치
·
IaC
Ansible은 오픈 소스 자동화 플랫폼으로 IT 시스템 구성 및 관리를 자동화하는 강력한 도구시스템을 configuration 하고 시스템이 환경에서 정상적으로 동작하도록 도와주는 역할  Ansible 실습 환경 구축 & Ansible 설치하기 관리 노드는 Ansible이 실제로 작업을 수행하는 대상 시스템. 리눅스 시스템, 가상화 환경 등이 관리 노드로 역할할 수 있음제어 노드는 Ansible을 통해 제어되는 시스템. 관리 노드는 제어 노드에서 실행하는 명령을 받아 작업을 수행하는 대상 시스템들 Ansible을 직접 설치하는 시스템은 관리 노드관리 노드는 다른 시스템(호스트)을 제어하는 역할을 한다. Ansible을 사용하여 작업을 실행하려면 관리 노드에 Ansible이 설치되어야 하고, 관리하려는 ..
[Ansible] 앤서블의 기본 개념과 설치 방법
·
IaC
Ansible 이란?오픈 소스 자동화 플랫폼으로 IT 시스템 구성 및 관리를 자동화하는 강력한 도구 기존 시스템 관리 방식 : 과거에는 표준 작업을 수행하기 위해 체크리스트를 작성하고 이를 관리 지침으로 사용하였다. 임기응변이나 축적된 경험을 통해 시스템을 운영하였는데, 이런 환경 속에서 시스템 업데이트나 마이그레이션 시 문제 발생 가능성이 존재했다.Snowflake Server와 같은 비표준화된 환경이 자주 발생하는 문제가 발생Snowflake Server : 수작업으로 관리되어 다른 서버와 환경이 달라지는 서버를 지칭 Snowflake Server의 발생을 방지하기 위해, 최근 시스템들은 자동화 도구를 채택한다.Ansible과 같은 도구를 사용하면 표준화된 작업을 자동으로 수행하고, 문제를 사전에 예..