DevOps

DevOps/Terraform

The architecture 'x86_64' of the specified instance type does not match the architecture 'arm64' of the specified AMI

기존 terraform 스크립트에서 aws_ami를 검색한 다음 사용하도록 구성하였는데, 오랜만에 apply하니까 이러한 메시지가 떴다. The architecture 'x86_64' of the specified instance type does not match the architecture 'arm64' of the specified AMI원인은 위 에러 메시지가 무색하게도 단순히 검색되는 이미지가 없을 때 발생하는데, 이럴 때에는 그냥 terraform docs에서 제공하는 형식으로 aws_ami data 블록을 구성하자 data "aws_ami" "ubuntu" { most_recent = true filter { name = "name" values = ["ubun..

DevOps

docker와 iptables 동시 사용 시 문제

iptables 방화벽 도구로써 트래픽을 제어할 수 있다. chain == 방화벽 규칙이다. ubuntu@ip-172-31-59-210:~$ sudo iptables --help iptables v1.8.7 Usage: iptables -[ACD] chain rule-specification [options] iptables -I chain [rulenum] rule-specification [options] iptables -R chain rulenum rule-specification [options] iptables -D chain rulenum [options] iptables -[LS] [chain [rulenum]] [options] iptables -[FZ] [chain] [options] ..

DevOps

로드밸런서 DSR, Inline

로드밸런싱을 수행하는 유형에는 대표적으로 2가지의 구조가 존재하는데, DSR(Direct Server Return)과 Inline 이다. DSR(Direct Server Return) Client에서 Server로 전송하는 요청은 LoadBalancer를 통해 들어가고, 응답은 서버에서 LoadBalancer를 거치지 않고 전송한다. Inline inline 구조는 서버로의 요청과 서버에서의 응답 패킷이 모두 로드밸런서를 거친다.

DevOps/Terraform

moved block

Moved 테라폼에서 기존 리소스의 이름이 변경되는 등의 상황이 발생하면 기존 리소스가 삭제되고 새로운 리소스가 생성된다. 다만 이때 삭제되고 생성되는 리소스가 정지되면 안되거나 내용이 삭제되면 안되는 경우가 대다수인데 이때 유용하게 쓸 수 있는 블록이 moved이다. None-moved resource "local_file" "a" { content = "hello!" filename = "hello.txt" } output "file_content" { value = local_file.a.content }위 tf파일에서 local_file.a의 이름을 b로 바꾸길 원할 때 resource "local_file" "b" { content = "hello!" filename = "hello.txt" }..

DevOps/Terraform

Terraform lifecycle

수명주기 terraform에서 resource를 선언할 때 블럭 내부에 배치하여 수명주기를 설정할 수 있다. 인수로는 다음 목록들을 입력할 수 있다. create_before_destroy (bool) 리소스 수정 시 수정된 리소스를 먼저 생성. 이후 기존 리소스 삭제 resource "local_file" "abc" { content = "lifecycle" lifecycle { create_before_destroy = true } } prevent_destroy (bool) 해당 리소스를 삭제하려할 때 거부 resource "local_file" "abc" { content = "lifecycle" lifecycle { prevent_destroy = true } } ignore_changes (l..

DevOps/Ansible

Ansible run_once

run_once 여러 호스트를 대상으로 플레이북을 실행하여도 local_action과 같이 로컬에서 실행하는 경우가 발생할 수 있습니다. 이때, 해당 작업을 하나의 호스트에서만 수행하도록 하는 옵션이 run_once입니다. - name: run only once command: /usr/bin/custom-command run_once: true 위와 같이 작성 시, 모든 호스트들 중에서 최초 호스트에서만 작업을 수행하게됩니다. - name: copy only once local_action: command /usr/bin/custom/command run_once: true 또한 컨트롤러 역할의 로컬에서 작업을 수행하도록 하는 local_action과 함께 사용시 특히 유용할 수 있습니다.

xlwdn98767
'DevOps' 카테고리의 글 목록 (2 Page)