Terraform 기초 실습: AWS EC2 생성 및 자동화
2026년 4월 9일, 클라우드 컴퓨팅 과목의 일환으로 Terraform을 이용해 AWS EC2 인스턴스를 생성하고 웹 서버를 자동 설정하는 실습을 진행했습니다. 이번 실습을 통해 Terraform의 기본 파일 구조, 실행 흐름, 그리고 `user_data`를 활용한 자동화 과정을 깊이 이해할 수 있었습니다.
운영하면서 막힌 문제와 공부한 내용을 다른 사람도 읽을 수 있게 정리한 글입니다.
2026년 4월 9일, 클라우드 컴퓨팅 과목의 일환으로 Terraform을 이용해 AWS EC2 인스턴스를 생성하고 웹 서버를 자동 설정하는 실습을 진행했습니다. 이번 실습을 통해 Terraform의 기본 파일 구조, 실행 흐름, 그리고 `user_data`를 활용한 자동화 과정을 깊이 이해할 수 있었습니다.
실제 운영 환경과 유사한 테스트 서버 환경을 구축하고, 이를 활용하여 블로그의 페이지네이션 기능을 검증하여 실제로 운영서버에 배포하는 과정을 마쳤습니다.
2026년 3월 3일, 외부에서 제 블로그 서버에 접속이 불가능한 문제가 발생했습니다. 문제 해결 과정과 그 원인, 그리고 앞으로 유사한 문제를 방지하기 위한 방법을 기록하고자 합니다.
라즈베리파이 클러스터의 시스템 업데이트를 Ansible로 자동화하는 방법을 배웠습니다. SSH 키 설정부터 Playbook 작성, Cron을 이용한 자동 실행까지 구현해보았습니다.
기존에 운영하던 서버들을 그대로 유지하면서 새로운 k3s 클러스터에 워커 노드로 통합하는 것은 생각보다 복잡한 과정이었습니다. 특히 Traefik과 svclb의 충돌, 그리고 Hostname 변경 후 발생한 여러 문제들을 해결하며 k3s의 내부 동작 방식을 탐구할 수 있었습니다.
이번 학습에서는 ArgoCD를 라즈베리파이 k3s 클러스터에 설치하고, GitOps 워크플로우를 통해 애플리케이션을 배포하는 과정을 실습했습니다. SSH 터널링, kubectl 포트 포워딩, 서비스 라우팅 등 여러 네트워킹 개념과 함께 ArgoCD의 원리를 파악할 수 있었습니다.
오늘날 k3s 서비스가 라즈베리파이에서 제대로 동작하지 않는 문제에 직면했습니다. 수많은 시행착오 끝에 문제의 근원이 `cgroup_disable=memory` 커널 파라미터에 있다는 것을 알게 되었고, 마치 미로를 헤매듯 복잡한 라즈베리파이의 부트로더 구조를 파헤치며 결국 해결에 성공했습니다. 이 경험을 통해 단순히 k3s 문제를 넘어, 임베디드 시...
이번 포스팅에서는 라즈베리파이 환경에서 Docker, Kubernetes(K3s), GitOps(ArgoCD)를 활용한 CI/CD 파이프라인 구축 여정을 공유하고자 합니다. 특히 GitHub Actions를 CI 도구로 사용하며 얻은 경험과 노하우를 상세히 풀어내겠습니다.