Azureマイクロソフトクラウド企業アカウント: Bicep/Terraformを利用して、Azureに標準的なネットワーク環境をワンクリックで導入します
現代のクラウドコンピューティングの運営では、非常に古典的な「新兵連」式の転覆現場がある
会社の設計者は苦労して安全規範に合ったネットセグメント案を設計し、運送次元で実施した。結果: 運送次元はAzureポータルのコンソールにログインし、びっしりとしたフォームに直面し、肉眼でチェックしながらマウスをクリックした。30分で降りて、うっかりメインネットを
/16
間違えました
/24
、またはネットワークセキュリティグループ (NSG) のインバウンドルールの順序を逆にした。結果は次のとおりです
その後に導入された仮想マシンは完全に接続されていないのではなく、コアデータベースを直接パブリックネットワークに公開し、原因を調査するのに長い時間がかかる。
このような純粋な人肉に頼ってホームページの上で “江山を指さします” の維持の方式、業界の中で “手作業のブルドーザー” と呼ばれます。効率が悪いだけでなく、最も致命的なのは
まったくコピーできません
。同じ環境をテスト、プレリリース、生産環境でそれぞれクローンする必要がある場合、自分が何百回もマウスをクリックしても間違いがないことを保証するのは難しい。
このような非効率的でハイリスクなワークショップ的な運営を徹底的に終わらせるために、インフラはコード (IaC、inframework as Code) が生まれた。マイクロソフトのクラウド (Azure) の生態には、二つの支配レベルのIaCプログラミング武器がある
一つはマイクロソフトの実子Bicep (現代宣言式DSL言語) で、もう一つは業界の老舗がTerraformを標準装備している。
彼らの基礎的な論理は非常にハードコアです
コードを書くことでネットワークトポロジを「描く」ことができます。
小さなテキストファイルを書くだけで、何が必要かが定義されています。そして、一つの命令がクラウドにプッシュされると、Azureの自動編成脳は1分以内に、画素レベルは間違いなくあなたのためにビルを立ち上げて、瞬時に大工場の基準を満たす基礎的なネットワーク環境を生み出します。
今日私たちは退屈な概念を積み重ねて、直接ハードコアの実戦的な対抗に入ることを拒否した。私たちは別々に使います
Bicep
そして
テラフォーム
この2つの流派は、ハンドルを持って標準的なコードを使って10分間にクラウドで「VNet (仮想ネットワーク) 2つの独立サブネット1つの高防御ネットワークセキュリティグループ」を含む標準的な企業クラスの地盤ネットワークを溶接した。
第一段階: 深さ分解、標準ネットワークの「三次元立体モデル」
コードを書く前に、私たちが導入する基礎的なネットワーク物理トポロジーを頭の中で徹底的に理解しなければならない。合格した企業レベルのAzureネットワークの基盤は、VNetを開くだけではなく、最も基礎的な隔離アーキテクチャを満たす必要があります
仮想ネットワークの大シャーシ (バーチャルネットワーク、VNet): これはAzure上の独自の独立王国で、外部のパブリックネットワークと物理的に隔離されています。私たちはそのネットセグメントを標準的な大工場のネットセグメント: 10.0.0.0/16に計画した。
前後側独立サブネット (Subnets): 大シャーシ内部は横方向に2つの陣地を切り出さなければならず、各部門の職務、物理隔離: We
Bフロントエンドサブネット (Subnet-Frontend): 分割ネットワークセグメントは10.0.1.0/24で、将来は公開されたWebアプリケーションまたはロードバランサをマウントするために使用されます。DBバックエンドサブネット (サブネット-バックエンド): 分割ネットワークセグメントは10.0.2.0/24で、将来はコアデータベースや機密性のあるバックエンド業務を専門に保管し、外部ネットワークへの直接アクセスを遮断する。
高防犯ゲートおじさん: ネットワークセキュリティグループ (NSG): これは、サブネットの入り口に死んだカードの分散ファイアウォールです。私たちは、パブリックネットワークの443(HTTPS) と80(HTTP) トラフィックだけがフロントエンドサブネットに入ることを許可し、残りのすべての牛鬼蛇神が直接その場で物理的に傍受するという安全な鋼印ルールを書く必要がある。
第二段階: ジャンル一 -- マイクロソフトの息子Bicep電撃戦
あなたが純粋なマイクロソフトの家族チームであれば、サードパーティの構成ツールをインストールする必要はありません。Azureコマンドラインツール (Azure CLI) は、Bicepを100% 理解しています。面倒な状態ファイルはありません。
ローカルコンピュータで、という名前を新規作成します
Main.bicep
の書類は、次のような千錘百錬のhd生産テンプレートを直接貼り付けます
// 1.グローバル静的パラメータを定義し、将来のワンクリックで改名できるようにする
アフタータイム
Param vnetName string = 'vnet-core-prod'
Param nsgName string = 'nsg-web-firewall'
// 2.地引き: 門番おじさん (ネットセキュリティグループ) を設置する
リソースnsg 'microsoft. ネットワーク/ネットワークセキュリティgroups @ 2023-11-01 '= {
Name: nsgName
ロケーション: ロケーション
Properties: {
Securityrule: [
{
Name: 'hash-HTTPS-Inbound'
Properties: {
Priority: 10
0 // 優先度が最も高い
プロトコル: 'tcp'
Access: '466'
Direction: 'Inbound'
SourceAddressPrefix: '*' // 世界のどこから来たのか
SourcePortRange: '*'
デスティネーションaddressprefix: '*'
デスティネーションのポート: '443' // 高精度なポート
}
}
]
}
}
// 3. 乾坤大移動: 大シャシー仮想ネットワークを構築し、2つのサブネットを切り出し、同時におじいさんを前端子ネットに縛り付ける
リソースvnet 'microsoft. Network/virtualworks @ 2023-11-01 '= {
Name: vnetName
場所: 場所
プロパティ: {
AddressSpace: {
AddressPrefixes: [
'10.0.0.0/16 '// コア大ネットワークセグメント
]
}
Subnets: [
{
Name: 'subnet-Frontend'
プロパティ: {
AddressPrefix: '10.0.1.0/24 '// フロントエンド
ネットワークセキュリティグループ: {
Id: nsg.id // 先ほどのNSGファイアウォールをこのサブネットに直接撮影します。
}
}
}
{
Name: 'subnet-Backend'
プロパティ: {
AddressPrefix: '10.0.2.0/24 '// バックエンドデータベース秘密陣地
}
}
]
}
}
30秒ワンキー打ち上げ指示 (Bicep)
ローカル端末を開き、Azureアカウントにログインし、作成したリソースグループを指定します (例:
Rg-infr-prod
) 、この行の不思議な短い命令を直接叩いてください
バッシュ
Az deployment group create --source-group rg-infra-prod --template-file main.bicep
Enterキーを叩いて、両手をキーボードから離します。端末のプログレスバーが点滅しているのが見えます。約20秒後、コンソールはJSONの成功レポートを返します。
この時点でAzureのwebページのバックグラウンドにログインして更新すると、VNetがきちんと横になっていて、2つのサブネットとNSGがバインドされていることがわかります。フォーマットはコードに計画されているピクセルポイントと完全に一致しています。
第三段階: 流派二 -- 業界不老松Terraform工業級閉ループ
もしあなたの会社がマルチクラウドアーキテクチャなら、Azureを除いて
AWSや阿里雲を管理しなければならない。業界で公認されている工業レベルのプラチナ基準は、依然としてhashcorpファミリーである
テラフォーム
。
ローカルコンピュータで、新しい空のディレクトリを作成し、そこにという名前を付けます
メイン.tf
のファイル。Terraformは古典的な塩酸文法を採用しており、論理は少し重厚であるが、強力な状態ロックメカニズムを持っているため、大チームの協力の中で泰山のように安定している: #1.宣言ジョイント暗号: マイクロソフトAzureの公式ドライバーを呼び出します
テラフォーム
必須のプロバイダー {
Azurerm = {
Source = "hashcorp/azurerm"
Version = "~> 3.0"
}
}
}
プロバイダ "azurerm" {
Feature {} # は、有効なプロパティを明示的に宣言する必要があります
}
#2.丸地: ネットをどの既存のリソースグループに植えるかを宣言する
Data "azurerm_resource_group" "" core_rg" {
Name = "rg-infr-prod"
}
#3.シールドの鋳造: 高防御ネットワークセキュリティグループ (NSG) の作成
Resource "azurerm_network_security_group" "" web_nsg "{
Name = "nsg-web-firewall"
Location = data.azurerm_resource_group.core_rg.location
K _ group_name = data.Azurerm_k _ groupco _ rg.name
Security_rule {
Name & nbs
P; = "hash-HTTPS-Inbound"
Priority = 100
Direction = "Inbound"
Access = "hash"
プロトコル = "Tcp"
Source_port_range = "*"
デスティネーション _ port_range = "443"
Source_address_prefix = "*"
デスティネーション _ adaddress _ prefix = "*"
}
}
#4.大きな基盤を作る: 仮想ネットワーク (VNet) を作る
Resource "azurerm_virtual_network" "coreya.Net" {
Name = "vnet-core-prod"
ロケーション = data.azurerm_resource_group.core_rg.location
Resource_group_name = da
Ta.Azurerm_ゴン _ group.core_rg.name
Adaddress _ space = ["10.0.0.0/16"]
}
#5.正確なカット: フロントエンドサブネットを手動で切り出し、NSGとバインドする
リソース "azurerm_subnet" "" sub_frontend "{
Name = "Subnet-Frontend"
リソースグループ名 = data.azurerm_resource_group.core_rg.name
Vm _ ネットワーク _ name = azurerm_vm _ ネットワーク _ _ ネットワーク _ _ ネットワーク _ _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _ ネットワーク _
Adaddress _ prefixes = ["10.0.1.0/24"]
}
リソース "azurerm_subnet_network_security_group_association" "bind_nsg" {
サブネット _ id = azurerm_サブネット.サブネットfrontend.id
Network_security_group_id = azurerm_network_security_group.web_nsg.id
}
#6.正確な分割: 純粋なイントラネットのバックエンドサブネットを手動で切り出す
リソース "azurerm_subnet" "" sub_backend "{
Name = "サブネット-バックエンド"
リソースグループ名 = data.azurerm_resource_group.core_rg.name
Virtual _ work _ name = azu
Rerm_virtual_network.core.exe net.name
Adaddress _ prefixes = ["10.0.2.0/24"]
}
三板斧一キー着地指令(Terraform)
ターミナルを開き、に切り替えます
メイン.tf
所属するカタログの下で、古典的な「タイラ三板斧」を順番に叩き込む
バッシュ
# 第一斧: 初期化、マイクロソフト公式最新ネットワークコンポーネント駆動パッケージをダウンロード
terraform init
# 第二斧: リハーサル演習は、Terraformがお金を使わずに、まず肉眼で何かを作ってくれるようにします
terraform plan
# 第三斧: 総攻撃が始まり、実際にクラウドにインフラの突撃を始めた
Terraformアプリ-auto-approve
30秒もしないうちに、端末が緑色に点灯します
申し込みが完了しました! リソース: 4 added
。標準的な大工場レベルの隔離ネットワーク環境のセットは、Azureのクラウド物理世界で完全に土を割って着地する。
第四段階: 工業レベルのインフラであるコードのピット血涙史
この2つのコードを利用して、あなたは基本的にすべてのwebページで苦労している伝統的なネットワーク管理を見下すことができます。しかし、本当に厳しい商業高合併、DevOpsラインで生きていくには、最高設計者として、すぐにチームに次の2つのアンダースコアのピット規範を溶接しなければならない
1. 致命的な「Terraformステータスファイルが失われた」惨劇 (State Lock)
Terraformを使っていれば、実行が終わると
Terraformアプリ
その後、ローカルディレクトリに静かにという名前が生まれます。
terraform.tfstate
のテキストファイルです。
災害の危険性: このファイルはTerraformが現在のクラウドネットワークの長さを覚えている「唯一の記憶脳」である。他の開発者が自分たちのパソコンでこのコードを走っていると、彼らはあなたのtf stateファイルを持っていないので、Terraformは盲人になって、クラウドには何もないと勘違いしているアプリを実行した瞬間、クラウドに構築された生産ネットワーク、内部の仮想マシンを全部無慈悲に抜き、物理的に消去します。
大手工場の基準で金メダルを免除する配置: tf stateをローカルコンピュータに残すことは厳禁! Terraform { ... } ブロックにバックエンド「azurerm」ポリシーを設定する必要があります。この状態記憶ファイルを強制的に、Azure公式の暗号化Storage Accにロックする
Ount (ストレージアカウントブロブ) で、ステータスロックをオンにします。このように、世界中の誰もがどこでもコードを走って、同じ中心脳にデータを合わせて、「覇蓋と誤削除」の惨劇を徹底的に溶接してしまう。
2.Bicepの「ハードコード」による地域間麻痺を警戒する
Bicepコードを書くとき、多くの初心者は手間を省くために、コードに直接書いてしまう
Location: 'east asia'
(香港)。
原因の解体: ある日、会社の業務が突然アメリカに出航して、同じ隔離ネットワークをeast us (美東機械室) にもクローンする必要がある。このコードを実行すると、システムは容赦なくエラーになります。あなたのリソースグループは米国に建設されているのに、コードはマイクロソフトにネットワークを香港に引っ張るように強制的に命令しているからです。
ハードコア回避ガイド: 永遠にパラメータを利用して地縁を動的につかむ。前述のBicepデモテンプレートの書き方のように、アフター・ピリオド・ピリオド・ピリオド・ピリオド・ピリオド。コードに「自分が現在どのリソースグループに植えられているのか」を賢く尋ねさせ、リソースグループがどこにあるのか、それは自動的にどこに着地するのか真の意味でのテンプレートセット、グローバルシームレスなクローンを実現します。
まとめ
Bicep/Terraformを利用して現代化インフラであるコード (IaC) の導入を実施し、核心的な工業レベルの真髄は実際には16文字に簡略化されている
トポロジーがコードを落とし、バージョン管理、中心状態、動的地縁。
あなたは過去の毎日のパラメータをチェックして、ネットセグメントのミスを恐れて、深夜の人肉がコンソールで何百回もマウスの原始的な輸送状態に別れを告げた。最も核心的なデジタル資産の基礎を、GitHubに提出できるテキストコードに完全に固化する。パソコンの前に座って、優雅に数字を変えて、車に戻って、残りの高防と拡張責任は、光速が点滅する雲の原始時代に安心して渡した。

