[Azure] Terraform - VM 생성 및 apache2 자동 설치(NSG 정책 추가 포함)
·
클라우드(Azure, AWS)
Terraform 코드를 사용하여 리눅스 VM 생성 및 apache2 자동 설치 진행 (NSG 정책 추가 포함)리소스 그룹 - azuredev-rg ( 신규 생성 )VNET 이름 - azuredev-vnet (신규 생성)SUBNET 이름 - azuredev-subnet (신규 생성)NSG 이름 - azuredev-nsg (신규 생성) -> SSH, HTTP 정책 생성공인 IP - azuredev1-pip  (신규 생성)VM 이름 - azuredev1  (신규 생성)SSH 접근은 사용자 계정 azuser로 패스워드 인증 사용  디렉토리 구조각 파일의 내용메인 구성 - main.tfterraform { required_providers { azurerm = { source = "hashico..
git push 오류 ( ! [rejected] master -> master (fetch first))
·
이것저것
해당 오류는 로컬 Git 저장소와 원격 GitHub 저장소 간의 불일치로 인해 발생하는 문제 아래 절차로 해결 가능1. 원격 저장소의 최신 변경 사항 가져오기git fetch azure 2. 로컬 저장소와 원격 저장소 통합(원격의 변경 사항을 로컬 저장소에 통합)git pull azure master  3. 변경 사항 커밋git add .git commit -m "작업 히스토리" 4. 변경 사항 푸시git push azure master
[Azure] Terraform - AGW 구성 후 기존 VM 및 NSG 정책 추가
·
클라우드(Azure, AWS)
Terraform 코드를 사용하여 AGW 구성, 기존 VM 등록 및 NSG 정책 추가https://comengx.tistory.com/89 에서 구성한 내용에서 LB, LB 공인 IP 삭제 후 진행AGW 전용 SUBNET 생성 - azuredev-agw-subnet (사전 구성)기존 subnet을 같이 사용했더니, agw 구성이 진행되면서, 구성되어 있는 vm이 모두 삭제 됨.terraform plan 진행 시 기존 리소스 삭제 안내가 있었는데,, 제대로 보지를 않음.;;;;클라이언트 -> AGW 접속(공인 IP) -> VM 접속(사설 IP)기존에 구성한 NSG에 HTTP 서비스 포트 추가정책 추가 시 기존에 등록 된 정책과 규칙 번호가 중복되지 않도록 확인 필요 디렉토리 구조 각 파일의 내용메인 구성 ..
[Azure] Terraform - 다수의 VM 생성 및 LB 연동
·
클라우드(Azure, AWS)
Terraform 코드를 사용하여 다수의 리눅스 VM 생성 및 LB 연동리소스 그룹 - azuredev-rg (생성되어 있는 그룹 사용)VNET 이름 - azuredev-vnet (신규 생성)SUBNET 이름 - azuredev-subnet (신규 생성)공인 IP - azuredev1-pip  (신규 생성)VM 이름 - azuredev1  (신규 생성)SSH 접근은 사용자 계정 azuser로 패스워드 인증 사용LB 이름 -  azuredev-lb (신규 생성)LB 공인 IP - azuredev-lb-pip (신규 생성)추가적으로 SSH 및 80 포트 접속을 위한 NSG 구성 및 포트 설정이 필요(NSG 이름 - azuredev-nsg) -> 수동 구성 디렉토리 구조  각 파일의 내용메인 구성 - main..
[Azure] Terraform - VM 생성
·
클라우드(Azure, AWS)
Terraform 코드를 사용하여 리눅스 VM 만들기리소스 그룹 - azuredev-rg (생성되어 있는 그룹 사용)VNET 이름 - azuredev-vnet (신규 생성)SUBNET 이름 - azuredev-subnet (신규 생성)공인 IP - azuredev1-pip  (신규 생성)VM 이름 - azuredev1  (신규 생성)SSH 접근은 사용자 계정 azuser로 패스워드 인증 사용  디렉토리 구조   각 파일의 내용메인 구성 - main.tfterraform { required_providers { azurerm = { source = "hashicorp/azurerm" version = "4.4.0" } }}variable "subscription_id" {}..
[Azure] 별도의 인증 파일을 사용하여 서비스 주체와 Terraform 연동
·
클라우드(Azure, AWS)
1. 변수 파일 생성프로젝트 루트 디렉토리에 "terraform.tfvars" 파일 생성terraform.tfvars 파일은 로컬에만 저장하고, 절대 공유하거나 버전 관리 시스템에 커밋하지 않도록 주의 필요.# terraform.tfvarssubscription_id = "your_subscription_id" -> 구독 IDclient_id = "your_client_id" -> terraformuser 개체 IDclient_secret = "your_client_secret" -> terraformuser 클라이언트 비밀 값tenant_id = "your_tenant_id" -> 부모 관리 그룹terraformuser는 연동을 위해 생성한 계정 (Microsoft E..
[Azure] OS 디스크 (Blob 스토리지, 관리 디스크)
·
클라우드(Azure, AWS)
Azure OS 디스크는 기본적으로 Blob 스토리지(페이지 Blob)를 사용하여, 관리 디스크 형태로 제공이 됨.Azure Blob 스토리지비정형 데이터를 저장하고 관리하는 데 적합하며, 주로 대용량 데이터를 장기 보관 또는 아카이빙하는 데 사용일반적인 데이터 저장에 사용Azure 관리 디스크Azure 가상 머신의 디스크로 사용되며, VM이 실행되는 동안 운영 체제와 애플리케이션 데이터를 저장하는 영구적인 블록 스토리Azure VM의 스토리지 솔루션으로 특화OS 디스크로 사용 시 최대 용량은 4,095GiB페이지 BlobBlob 스토리지가 제공하는 3가지 유형 중 하나(블록 Blob, 추가 Blog, 페이지 Blob)랜덤 읽기/쓰기가 필요한 데이터에 최적화512바이트 페이지 단위로 저장Azure VM의..
[Azure] Terraform 연동을 위한 서비스 주체(Service Principal) 구성
·
클라우드(Azure, AWS)
서비스 주체(Service Principal)Azure 리소스에 대한 인증 정보 제공 및 권한 부여Azure CLI를 통해 생성 가능응용프로그램 또는 인프라 또는 Azure 인프라 제품들을 사용하기 위한 앱에 대한 ID를 만드는 과정이 서비스 주체(Service Principal) 입니다. 이는 응용프로그램 APP에서 Azure 인프라를 수정 하기 위해서 등록하고 사용 기간 설정등 자동화를 위해서 필요한 제품이며 이 권한은 AAD에서도 매우 중요한 기능입니다. 그래서 권한이 없는 사용자들은 함부로 이 서비스 주체를 만들수 없도록 세팅하는것은 매우 중요합니다.서비스 주체(Service Principal) 생성Azure Cloud Shell 실행 Terraform용 Service Principal 생성 (t..
[Azure] vscode에서 terraform 연동
·
클라우드(Azure, AWS)
Terraform 설치Terraform 파일 다운로드 (사용하는 OS 환경에 맞게 선택https://developer.hashicorp.com/terraform/install다운로드 파일 압축 해제 후 실행 파일 복사 (C:\Terraform 아래에 복사) 파일 실행 확인   환경 변수 등록 (Windows 10기준)내 컴퓨터 -> "속성" -> "고급 시스템 설정" -> "환경 변수" 클릭 시스템 변수 -> Path에 Terraform 실행 파일 경로 등록 다른 경로(C:\)로 이동하여 terraform 실행 확인   VSCode에서 Terraform 확장 패키지 설치확장 패키지 설치HashiCorp TerraformAzure Terraform (azure에서 사용할거라 설치)   Terraform 리..