IAC

0. IaC(Infra as a Code)의 사용 이유 사람은 한정적인데 운영해야 할 서버가 많아짐 → 반복되는 일이 늘어남 버전 관리 가능 리뷰 및 테스트 가능 휴먼 에러 감소 테라폼 사용에 대한 공부와 기존 인프라가 이미 있을 경우 통합시키는 수고 필요 1. 기본 동작 방식 1.1 Init: 실행을 위한 준비 작업(초기 setting) 테라폼 상태 파일 확인 provider 플러그인 다운로드 모듈 다운로드 1.2 apply: 작성된 코드를 기반으로 인프라 구성 테라폼이 자동으로 의존성(dependency)을 구성하고 병렬로 인프라를 구성한다. 수동으로 의존성을 걸 수 있지만 테라폼이 의존성을 구성하는 과정에서 꼬일 수 있어 사용하지 않는 것을 권장 어떤 리소스가 생성/수정/삭제 되는지 확인하는 pla..
테라폼 전체 코드https://github.com/su-mmer/AWSCodeDeployT..
테라폼으로 Bastion Server를 생성하겠습니다. 서버 생성 자체는 어렵지 않았으나 모듈화 할 때 생각할 것이 많아보입니다. 윈도우와 맥을 모두 사용해서 로컬호스트의 이름이 섞여있을 수 있습니다. 서버 접속을 위한 키 생성 hh@DESKTOP-4UIU15G:~$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/hh/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/hh/.ssh/id_rs..
구성에 맞추어 아래 네트워크 구성을 작성하겠습니다. VPC Public Subnet 1, 2 Private Subnet 1, 2, 3, 4, 5 NAT Gateway Internet Gateway Route Table 환경 세팅 테라폼 버전입니다. aws configure 되어있는 상태입니다. 코드 작성 기본 설정 terraform { required_providers { aws = { source = "hashicorp/aws" version = "~>4.0" } } } provider "aws" { region = "ap-northeast-2" default_tags { tags = { Name = "terraform-frog" } } } aws 버전과 태그를 지정하지 않았을 때 자동으로 설정될 기본..
Terraform 스터디 프로젝트로 이전에 AWS 3Tier를 구축했던 걸 Terraform을 활용해 다시 구축해 보기로 했습니다. 전체 아키텍쳐 구상(진행하며 변경 사항 추가할 예정)입니다. 주제 Terraform을 이용한 AWS 3-Tier 구성 중점 과제 인스턴스 모듈화 및 쉘 스크립트 작성 내용 WEB-WAS-DB 구조 인스턴스 모듈화 컴파일 설치로 진행 Terraform 코드를 Git에 push하면 GitAction을 이용해 AWS에 프로비저닝 되는 방식 수동으로 관리하는 부분 없이 Terraform으로 프로비저닝 했을 때 DB에서 불러온 내용을 웹에서 확인할 수 있어야 함 state 파일은 Terraform Cloud 사용 생각해 볼 내용 1. prod/dev을 어떻게 구분해서 쓸지? 일단 d..
의도 [테라폼으로 시작하는 IaC] 책의 246페이지 실습에 대한 내용이다. 한 가지 변수 값만 다른 instance를 반복문을 사용해 3개 생성해야 한다. 모듈을 쓰자니 너무 복잡하고 count를 쓰자니 instance 참조 방식을 인덱스로 하는게 맘에 안 들어서 for_each를 택했다. # aws_instance.hashicat["kitten"] will be created + resource "aws_instance" "hashicat" { 이런 식으로 aws_instance.hashicat["kitten"] 형태로 참조하고 싶었다. count를 사용하면 aws_instance.hashicat[0] 의 형태로 참조해야 한다. 결과 코드 locals { map_placeholder = { "kitt..
기본 Vagrantfile # -*- mode: ruby -*- # 파일이 루비임을 인식하게 하는 호환 코드 # vi: set ft=ruby : # ft = file type Vagrant.configure("2") do |config| # API version=2 # vagrant config 시작 config.vm.define "m-k8s" do |cfg| # 가상머신 이름을 m-k8s로 정의하고 config 시작 config.vm.box = "sysnet4admin/CentOS-k8s" # cfg 내용들을 box에 저장 cfg.vm.provider "virtualbox" do |vb| # virtual box에서 필요한 cfg 시작 vb.name = "m-k8s(github_SysNet4Admin)..
Vagrant? IaC(Infra as a Code)를 사용하는 이유는 코드형 인프라를 사용하여 인프라 환경을 일정하게 유지하고 구성하기 위해서다. vagrant는 HashiCorp에서 개발한 가상환경의 관리 및 프로비저닝을 도와주는 오픈소스 소프트웨어다. VirtualBox, VMware 및 Hyper-V와 같은 다양한 가상화 플랫폼과 Docker와 같은 컨테이너와 함께 작동한다. Vagrant는 VirtualBox와 같은 가상 머신을 Vagrantfile이라는 선언적 파일을 사용하여 코드로 관리한다. Vagrantfile에 가상 환경의 원하는 속성을 정의한다. 코드로 작성되어 있어 개발 환경을 다른 사람과 쉽게 공유할 수 있고 환경의 일관성을 보장하여 환경 관련 문제의 가능성을 줄일 수 있다. Vag..
su-mmer
'IAC' 태그의 글 목록