본문 바로가기

IT/Terraform4

Terraform - Final Scenario IT (Information Technology): 정보 입력 + 정보 처리 + 정보 전달 + 정보 저장 정보 처리: 입력된 변수와 연산자를 통해 컴파일하여 결과를 출력정보 저장: 출력된 결과를 다른 컴포너트로 전달 (네트워크 및 스토리지, 인프라 관련) # PHP (EC2) + Mysql (RDS) 배포 시나리오 1. 새로운 이미지 생성 및 PHP App 검증    - 콘솔로 EC2 생성 (Amazon Linux 2 이미지)    - php, php-myqli 설치    - 코드 다운로드 및 실행  2. Database 연결 검증    - RDS Mysql 5.7    - 코드 실행할 때 연결되는지 확인  1. 새로운 이미지 생성 및 PHP App 검증       - 콘솔로 EC2 생성 (Amazon .. 2025. 2. 6.
Terraform - Module, Provisioning terraform init이 수행하는 3가지1. provider plugin2. backend3. module  // 보통 모듈을 추가할 때마다 init을 함 모듈 지역화 (Module Localization): 보통 입력변수를 모듈을 참조할 때 동적으로 변화하는 환경에서 작업 수행을 목적으로 모듈에서 변수를 정의해야 하는데 특정 변수를 노출하고 싶지 않을 때 사용 (다른 외부에서 입력을 받지 않고 모듈 내에서만 변수를 사용)↔ 외부 공개 무방하다면 모듈 입력해도 됨 - vi ~/terraform-demo/modules/service/webserver-cluster/main.tf 이동  modules에서만 이용되는 변수 입력 (locals란 블록 이용)→ root 모듈에선 사용할 수 X  LB Liste.. 2025. 2. 5.
Terraform - 웹 클러스터 및 로드밸런서 배포, 상태 관리, 환경 격리, 모듈 웹 서버 클러스터 배포: 하나의 서버가 죽더라도 다른 서버가 실행할 수 있게끔  →  downtime 최소화, 서비스 quality ↑*ASG (Auto Scaling Group) 이용 // Launch Configuration 보단 Template 사용 권장하나 이번에 configuration 사용해보기로!  main.tf에서 resource 부분 삭제하고 해당 부분 업데이트  auto scaling group까지 구성 + lifecycle (create_before_destroy=true -> 무한 루핑 방지, 리소스 낭비 X)하여 전체 main.tf를 업데이트 한다.  public ip 에 대한 에러가 뜬다. 왜냐하면 현재 ec2에 대한 auto scaling group을 실행할 것이기 때문에출력변.. 2025. 2. 4.
Terraform - Baseline Ansible - Configuration에 대한 자동화Terraform - Provisioning에 대한 자동화 // Provisioning: 생성한 리소스들을 사용자들이 사용할 수 있게끔 전달해주는 도구 Pulumi vs Terraform (둘 다 핵심적인 Provisioning 도구)Pulumi - 사용자가 직접 정의 => 퍼블릭 뿐만 프라이빗 클라우드에서 사용되기에 추세가 증가Terraform - 퍼블릭 클라우드에서 제공되는 EC2, VPC를 전달하는 API를 실행하게 끔 코드를 작성해줄 수 있음                   => aws 이외것 불가능  -클라우드 3가지 특징 1. On-Demand : 내가 원하는 요청에 맞게끔 제공됨  -> IaaS Cloud2. 종량제 방식 : 내가 필요한.. 2025. 2. 3.