2022/03 6

Terraform - Azure(3)

Terraform으로 Azure에 VM 인스턴스를 하나 생성해보자. 사실 생각보다 간단하지 않고, 생성해야 할 리소스가 꽤 많다. Resource Group Virtual Network Subnet Public IP Network Security Group 및 Rule Network Interface 및 Association Boot diagnostics 저장을 위한 Storage Account SSH Key VM Instance 위에서 나열한 리소스들을 다이어그램으로 표현하면 다음과 같다. 1. Terraform을 실행할 Directory를 생성한다. mkdir demo-vm && cd demo-vm 2. 아래와 같이 main.tf 파일을 작성한다. # Configure the Microsoft Azu..

IaC 2022.03.14

Terraform - Azure(2)

Terraform을 통해 생성된 리소스의 상태(Terraform State)는 'terraform.tfstate' 라는 파일에 의해 관리된다. 이 파일이 저장되는 곳을 Terraform Backend라고 하는데, 기본적으로 terraform 명령어를 실행한 Local directory에 저장한다. 다만 설정을 통해 클라우드에 위치한 별도의 Storage(ex: AWS S3, Azure Storage Account)를 사용할 수 있다. 이 경우, Terraform을 실행하는 위치(개발자 Local PC, Bastion Host, Jenkins 등)와 관계없이 다양한 곳에서 항상 동일한 결과를 얻을 수 있다. 이번 시간엔 Azure에 Terraform Backend를 만들고, 이를 활용하는 방법에 대해서 설..

IaC 2022.03.13

Terraform - Azure(1)

AWS와 마찬가지로 Azure 역시 Terraform을 통해 다양한 리소스를 생성할 수 있고, 원하는 인프라를 구성할 수 있다. 환경 설정 1. Terraform 설치 Terraform을 설치하는 방법에 대해선 링크를 참고한다. 2. Azure CLI 설치 Linux에서 아래 명령어로 Azure CLI를 설치할 수 있다. curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash 제대로 설치되었는지 다음 명령어를 수행한다. az version 3. Azure Login CLI를 통해 Azure에 로그인하기 위해 다음 명령어를 수행한다. az login 이후 브라우저를 통해 팝업되는 Login 메뉴에서 로그인을 진행한다. 로그인이 완료되면, CLI에서 현재 Subsc..

IaC 2022.03.11

Azure - Routes

아래와 같이 PC A와 PC B가 서로 다른 네트워크에 위치했다고 가정하자. A가 B로 패킷을 보내려고 한다면, 어떤 것을 알고 있어야 할까. 복잡하게 생각할 것 없이 나와 직접 연결된 컴퓨터 중 B로 패킷을 전달해 줄 수 있는 Next Hop만 기억하면 된다. 중간 전달자 역할을 해줄 Next Hop 역시 다음 전달자에 대해서만 알면 궁극적으로 B까지 패킷을 전달할 수 있을 것이다. 이렇게 특정 IP 주소나 대역에 대해 Next Hop을 지정한 것을 Route라고 하며, Route를 한데 모아서 테이블로 구성한 것을 Route Table이라고 한다(사실 이렇게 단순한 원리로 동작하진 않지만, 이해를 돕기 위해 기본 개념만 설명하였다). Azure에서 VM을 생성하면 별다른 설정을 하지 않아도 기본 Ro..

Cloud 2022.03.08

Azure - Role Based Access Control

Azure의 Resouce 권한 관리는 Role을 기반으로 이루어진다. 특정 Resource에 대한 접근은 해당 Identity에 Role이 부여가 되었는지 아닌지에 따라 결정된다는 뜻이다. 굳이 Azure뿐만이 아닌 다른 CSP(AWS, GCP)나 K8s 등에서도 보편적으로 사용하는 방식이다. Azure의 RBAC을 이해하기 위해선 Role, Security Principal, Scope에 대한 이해가 먼저 필요하다. Role Action은 특정 Resource 및 해당 속성에 대해 수행할 수 있는 작업(Read, Write 등)을 의미한다. 예를 들어 Virtual Machine 인스턴스를 가동에 대한 Action은 'Microsoft.Compute/virtualMachines/start/action..

Cloud 2022.03.06

Azure - Virtual Network Peering

Virtual Network AWS의 VPC(Virtual Private Cloud)와 동일한 개념으로, Azure 역시 Private Network를 구성하기 위해 Virtual Network(VNet) 라는 리소스를 제공한다. VNet 위에 VM 인스턴스 등의 리소스를 배포하여, 다른 VM이나 인터넷과 통신할 수 있다. VNet 생성시 어떤 Region에 구성할 것인지 선택해야 하며, 하나의 VNet은 다시 여러개의 Subnet으로 분할할 수 있다. 기본적으로 VNet 간에는 서로 다른 네트워크에 위치한 것으로 인식하며, 직접적인 Communication이 이루어지지 않는다. 예를 들어 VNet01(10.1.0.0/16)과 VNet02(10.2.0.0/16)이 있다고 가정하자. 각 VNet에 defa..

Cloud 2022.03.04