본문 바로가기

클라우드

(419)
테라폼 Terraform 리소스 종속성 # Terraform 리소스 종속성 Terraform은 선언형이기 때문에 리소스에 종속성이 있으면 Terraform엔진이 파악을 한 후 순서대로 작업을 진행한다. # 암시적 종속성 : 눈으로 보이지 않는다. 예를들어 VCP를 사용하는 EC2 인스턴스를 선언하게 되면, 암시적으로 Terraform 엔진이 알아서 네트워크를 설정하고 그 네트워크를 사용하는 EC2인스턴스를 나중에 생성하게 된다. # 명시적 종속성 : 사용자가 명시적으로 선언해 줄 수 있다 . 예를들어 S3 버킷과 EC2인스턴스는 아무 관계가 없다. EC2 인스턴스 내부의 어플리케이션이 특정 S3 버킷에 있는 오브젝트에 접근해서 정보를 가져와야 한다면,암시적 종속성이 아니기 때문에 명시적으로 종속 선언을 해야한다. # 기존 구성 파일 수정 pr..
테라폼 Terraform 리소스 변경, 삭제 # Terraform 리소스 변경 # 이미지 변경 AMI 이미지 ID를 ami-0b329fb1f17558744로 변경한다 # 변경 사항 계획 -/+ 삭제하고 다시 만든다 replacement 교체 이미지만 변경 할 수 없기 때문에 , 기존 이미지를 제거하고 다시 만든다. # 변경 사항 적용 기존 인스턴스는 제거하고 새로운 인스턴스가 생성된다 # AWS 콘솔에서 확인 # terraform.tfstate 파일 확인 terraform.tfstate 파일로 현재 상태를 볼 수 있다. apply를 하게 되면 terraform.tfstate 텍스트 파일이 생성 되는데 절대 git에 push되지 않도록 주의한다. json형태의 데이터가 나오는데 apply를 했을 때 실제로 리소스가 만들어지고 상태가 저장된다. 리소스..
테라폼 Terraform 구성 파일 작성 , 배포 # Terraform 구성 파일 Terraform 으로 인프라를 정의하는데 사용하는 파일을 Terraform 구성 파일이라고 한다. # 파일 확장자 Terraform 구성 파일은 .tf 또는 JSON 기반의 Terraform 구성 파일인 .tf.json을 사용한다. # 텍스트 인코딩 구성파일은 UTF8 인코딩을 사용하며 Unix 스타일의 줄바꿈인 LF를 사용한다. 그러나 windows 스타일의 줄바꿈인 CRLF도 허용한다. 오픈소스ㄹ 작업 할 때 줄바꿈을 LF로 바꿔주는것을 권장한다. 대부분의 오픈소스, 컨테이너 기반은 Unix 위주여서 CRLF가 오류가나는 경우가 있다. # 디렉토리 Terraform은 현재 디렉토리에 있는 모든 .tf 파일을 읽는다. https://registry.terraform.i..
테라폼 Terraform 설치 , AWS CLIv2 설치 # AWS CLIv2 설치 AWS를 사용하기 위해 AWS인증을 해야한다. AWS 커멘드가 있어야한다. Terraform 이 AWS command의 인증 기능을 사용한다. # AWS 액세스 키 # unzip 설치 # AWS CLI 설치 https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/install-cliv2-linux.html Linux에서 AWS CLI 버전 2 설치, 업데이트 및 제거 - AWS Command Line Interface 결과에서 경고가 예상되지만 문제가 되지는 않습니다. 이 경고는 개인 PGP 키(보유한 경우)와 AWS CLI PGP 키 사이에 신뢰 체인이 없기 때문에 발생한 것입니다. 자세한 내용은 Web of trust를 참조하십 d..
테라폼 Terraform 이란? # Terraform 이란? Terraform은 HashiCop 사의 코드형 인프라 도구이다. 오픈소스이다. 주 기능이 구성관리(cm: configuration management)인Ansible와 달리, Terraform의 주 기능은 배포이다. 일부 구성관리의 기능도 있다. Terraform은 클라우드, 물리 시스템, VM, 네트워크장비, 컨테이너 등 인프라의 자동화 된 배포, 변경 및 관리를 제공한다. HashiCop 사의 가장 인기있는 제품이며 멀티클라우드, 하이브리드 클라우드에서 가장 많이 사용한다. AWS의 CloudFormation, GCP의 Deployment Manager등 각 클라우드 회사마다 클라우드에서 자사의 제품들을 IaC로 배포할 수 있는 기능이 있다. 이런 도구들은 자사의 제품만..
앤서블 Ansible 작업 제어 6 / 작업 오류 처리 # 작업 오류 처리 앤서블에서는 return code (rc) 가 0이어야만 정상적으로 실행이 되었다고 판별한다. 리턴코드가 0이 아니거나 작업에서 오류를 수신하면 해당 호스트에서 해당 작업 및 후속 작업을 중지하고 다른 호스트가 있다면 다른 호스트에서 작업을 계속 실행한다. 그러나 드문경우 rc가 0이 아니어도 정상적으로 작동한것일수있다. 오류를 처리하는 방법이 여러가지 있다. # 실패한 명령 무시 명령 (command 모듈) 작업이 실패하더라도 ignore_errors 키워드로 무시할 수 있다. 리턴코드가 0이 아니라도 다음작업으로 넘어간다. # 연결 할 수 없는 호스트 무시 ssh연결이 안되어 관리노드에 연결 할 수 없는 unreachable 상태인 경우 ignore_unreachable 키워드로 ..
앤서블 Ansible AWX https://github.com/ansible/awx GitHub - ansible/awx: AWX Project AWX Project. Contribute to ansible/awx development by creating an account on GitHub. github.com # AWX 웹 기반 사용자 인터페이스를 (web base user interface) 제공하는 Ansible 앤서블은 레드햇이 소유권을 가지고 있다. CLI Command는 별도로 유료 버전은 없는데 기본적으로 레드햇에서 Ansible Tower라는 제품의 오픈소스가 AWX 이다. 플레이북을 실행하고 모니링하는데에 웹 인터페이스를 사용한다. # AWX의 특징 - 실시간 작업 모니터링 - 역할 기반 접근 제어 (RBAC) ..
앤서블 Ansible 작업 제어 5 / 블록 # 블록 play와 task의 중간 단계에 있는 논리적인 작업 그룹 논리적으로 작업을 그룹으로 묶는다. 조건문, 권한 상승과 같은 여러가지 키워드를 적용 할 수 있다. (반복문x) 블록으로 묶어놓은 작업에 오류가 있으면 대응해주는 예외처리기능이 있다. # 작업의 그룹화 더보기 tasks: - name: Install, configure, and start Apache block: - name: Install httpd and memcached yum: name: - httpd - memcached state: present - name: Apply the foo config template template: src: templates/src.j2 dest: /etc/foo.conf - name: Star..