ãã®èšäºã®å·çã«ååããŠãããAkvelonïŒYaroslavlïŒã®Mikhail TryakhovïŒ @PerseptronYar ïŒã«èšäºãæºåããŠãããããšã«æè¬ããŸãã Michaelã¯ããããã¯ãŒãã³ã°ãµãŒãã¹ã«ç¹åããMicrosoft Azure CLIïŒã³ãã³ãã©ã€ã³ã€ã³ã¿ãŒãã§ã€ã¹ïŒéçºããŒã ã§åããŠããŸãã
èªè
ã®çããããæšæ¶ïŒ
1ãæåã«Azure Resource ManagerïŒARMïŒã®æåã®ã¹ãããã«é¢ããèšäºã§å§ãŸã£ãMicrosoft Azureã³ã¢éçºããŒã«ã®èª¬æãç¶ããŸãããã åŸæ¥ã®ïŒAzure Service ManagementïŒã¢ãããŒããšæ°ããARMã¢ãŒãã®äž»ãªéãã«ã€ããŠèª¬æããŸããã JSONãã³ãã¬ãŒãïŒãã³ãã¬ãŒãïŒã®æäœæ¹æ³ãæ€èšããã¢ãŒããã¯ãã£ããããã€ããã³å€æŽããããç°¡åãªæ¹æ³ãå¯èœã«ããŸããã æåã®æ©äŒã«ãäŸãšããŠ3ã¬ãã«ã®ã¢ããªã±ãŒã·ã§ã³ã䜿çšããŠã»ãã¥ãªãã£ããªã·ãŒãæ§æããæ¹æ³ã瀺ããŸããã
æ§ãããªéã§ã¯ãããŸããã建èšçãªæ¹æ³ã§åãåã£ããã£ãŒãããã¯ã«æ¬åœã«æè¬ããŠããŸãã ããªãã®è³ªåããããã€ããªãããœãªã¥ãŒã·ã§ã³ã®äœæããã»ã¹ã説æããããã«ãªããŸããããã§ã«ãã®èšäºã§ã¯ããã®äž»é¡åéã®ããã€ãã®ã±ãŒã¹ã«ã€ããŠè§ŠããŸãã æãåºãããŠãã ãããç§ãã¡ã¯ä»¥äžã«å³åŒçã«æãããã¢ãŒããã¯ãã£ã®äŸãèããŸããã

ãããããARMã®ãããã¯ãŒã¯ãµãŒãã¹ãåŒãç¶ã䜿çšããããšæããŸãã ããã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã®å
éšã¬ã€ã€ãŒéã®çžäºäœçšãèŠãŠã¿ãŸãããã

ãããã¯ãŒã¯ã»ãã¥ãªãã£ã°ã«ãŒããä»ããŠãç¹ã«ã€ã³ã¿ãŒãããããçŽæ¥ããŒã¿ããŒã¹ãµãŒãã¹ïŒããã¯ãšã³ãïŒãžã®ã¢ã¯ã»ã¹ãçŠæ¢ããã»ãã¥ãªãã£ããªã·ãŒãæ¢ã«èšå®ããŠããããšãæãåºãããŠãã ããã
{ "name": "Block_Internet", "properties": { "description": "Block Internet", "protocol": "*", "sourcePortRange": "*", "destinationPortRange": "*", "sourceAddressPrefix": "*", "destinationAddressPrefix": "Internet", "access": "Deny", "priority": 200, "direction": "Outbound" } }
ããã«ããµããžã§ã¯ããšãªã¢ã«ã¯ãåœç€Ÿããã³ãã®ä»ã®æŠåšã®ç¹æãå¿
èŠã«ãªãå ŽåããããŸãã ã¢ããªã±ãŒã·ã§ã³ã®ã¬ãã«éã®æ£ããçžäºäœçšãä¿èšŒããããã«ãã«ãŒãã£ã³ã°ãæ§æããå¿
èŠããããŸãã å¿
èŠãªã±ãŒã¹ã®ã»ãšãã©ã¯ãããã©ã«ãã®ã·ã¹ãã ã«ãŒãã§å®å
šã«ã«ããŒãããŠããŸãã ããã«ãããé¢é£ãããµããããïŒãµããããïŒã«é¢ä¿ãªããä»®æ³ãããã¯ãŒã¯å
ã®ä»®æ³ãã·ã³éã®æ¥ç¶ã®ã»ããã¢ããã«ã€ããŠå¿é
ããå¿
èŠããªããªããŸãã ããã«ãã·ã¹ãã ã«ãŒãã¯ã確ç«ããããããã¯ãŒã¯ã®å€éšïŒã€ã³ã¿ãŒããããVPNãä»ããä»ã®ãããã¯ãŒã¯ïŒãžã®ããŒã¿äº€æãæäŸããŸãã ã«ãŒãããŒãã«ãžã®ãªã³ã¯ãèªåçã«äœæãããŸãã ãã³ãã¬ãŒãã®ãµã€ãºãå°ããããããã«ããã®ã¿ã¹ã¯ãããã¶ãåçŽåãã圢åŒã§å®è¡ããããšãææ¡ããŸãã

ãã ããããã©ã«ãã®ããŒã¿ãµãŒãã¹ã«å€ãã®æéãè²»ããããšã¯ã§ããŸããã åºæ¬çãªã·ã¹ãã ã«ãŒãã£ã³ã°ã§ã¯å¯Ÿå¿ã§ããªããããããªã±ãŒã¹ãèããŠã¿ãŸãããã ãã®ãããªç®çã®ããã«ããŠãŒã¶ãŒå®çŸ©ã«ãŒãã£ã³ã°ïŒUDRïŒã䜿çšã§ããŸãã ããã«ããããŠãŒã¶ãŒå®çŸ©ã®ã«ãŒããäœæããããè€éãªã«ã¹ã¿ã ã·ããªãªãå®è£
ã§ããŸãã ããšãã°ãUDRã¯ãAzureã¢ãŒããã¯ãã£ã§ä»®æ³ããã€ã¹ã䜿çšããããŒã«ã«ãããã¯ãŒã¯ãä»ããŠã€ã³ã¿ãŒããããžã®ã¢ã¯ã»ã¹ãæäŸããã®ã«åœ¹ç«ã¡ãŸãã

ãã®ãããªã¿ã¹ã¯ã®å®è£
ã¯ããŠãŒã¶ãŒå®çŸ©ã«ãŒãã«ããæ£ç¢ºã«è§£æ±ºã§ããŸãã UDRã®å¿
èŠæ§ãæãããªä»ã®ã±ãŒã¹ã¯ããã¡ã€ã¢ãŠã©ãŒã«ãæ§æãããããã¯ãŒã¯çµç±ã§éä¿¡ãããããŒã¿ã®ããæ·±ãåæãæ§ç¯ããããšã§ãã ã«ãŒãã£ã³ã°ãæ§ç¯ããåæ§ã®æ¹æ³ã¯ããã®ã³ã°ã·ã¹ãã ã®ãã䟿å©ãªã«ã¹ã¿ãã€ãºã«ã圹ç«ã¡ãŸãã
ããã§ã¯ãUDRãæ§ç¯ããäŸãèŠãŠã¿ãŸãããã System Routesã䜿çšããŠããã©ã«ãã®ã±ãŒã¹ãå€æŽãããã©ãã£ãã¯ãå®è¡ããŠã¿ã¹ã¯ãå®äºãã3çªç®ã®ä»®æ³ãã·ã³ãè¿œå ããŸãã

JSONãã³ãã¬ãŒãã䜿çšããŠã€ã³ãã©ã¹ãã©ã¯ãã£ãåå±éããããšãææ¡ããŸãã ç§ãã¡ã¯ããã§ã«ããç¥ãããŠãããšãã£ã¿ãŒã®1人ã§åœŒãšååããŸãã ãŸããVisual Studioãèªç¶ã«èµ·åããŸããããã®äŸã§ã¯ããã®ãããªåŒ·åãªIDEã¯ããªããé£ããããœãªã¥ãŒã·ã§ã³ã§ãã å¥ã®æ¹æ³ãšããŠãJSONã®äœ¿çšããµããŒããããšãã£ã¿ãŒã䜿çšã§ããŸãã JSONã®æœåšçãªæ§æãšã©ãŒã®ç¶æ³ããæãåºãæ¯èŒçæ°ããæ¹æ³ã®1ã€ã¯ãVS Codeã§ãããããšãã°marketplaceã®ããŒã¿çã§å©çšå¯èœã§ã ã
ãã®ãªã³ã¯ã¯ãã®ãªã³ã¯ããå
¥æã§ããŸãã ã芧ã«ãªãã°ããã®ããªã¥ãŒã ããç§ããã®ã¿ã¹ã¯ãå
ã®3ã¬ãã«ã®ã¹ããŒã ããcoç
ã«åã£ãçç±ãç解ããŠããããšæããŸãã åãšåãããã«ãç§ãã¡ã¯æãããç¶ããŸãã ãã³ãã¬ãŒãã§ã¯ãä»®æ³ãããã¯ãŒã¯ãš3ã€ã®ãµãããããäœæããŸãïŒããã³ããšã³ããããã¯ãšã³ããããã³ãããã®éã®ä»®æ³ã¢ãã©ã€ã¢ã³ã¹ïŒsubnet3ïŒã NSGã«å ããŠãããã³ããšã³ããµããããïŒsubnet1ïŒã¯ãçºä¿¡ãã©ãã£ãã¯ã転éããã«ãŒãããŒãã«ïŒã«ãŒãããŒãã«ïŒãšçžé¢ããŸãã ãŠãŒã¶ãŒå®çŸ©ã«ãŒãã¯ãçºä¿¡ãã©ãã£ãã¯ã®ã¿ãæ§æããã®ã«é©ããŠããããšã«æ³šæããŠãã ãããããã«ãã«ãŒãã£ã³ã°ã¯åããµããããã®å€éšã§è¡ãå¿
èŠããããŸãã
åãµããããã§ãä»®æ³ãã·ã³ãå±éããŠãããªãã¯IPã¢ãã¬ã¹ãå²ãåœãŠããããã¯ãŒã¯ã»ãã¥ãªãã£ã°ã«ãŒããæ§æããããã©ã«ãã«ãŒã«ã«è¿œå ããŠãRDPçµç±ã®ã¢ã¯ã»ã¹ãèš±å¯ããŸãã ããŠããã¶ãŒãã®å Žå-äžèšã®ã«ãŒãããŒãã«ãè¿œå ããŸãããã®ããŒãã«ã«ã¯ãã«ãŒãã®ç®çå°ïŒç®çå°ã«ãŒãïŒãåæ ããã«ãŒã«ãèšè¿°ããŸãã
{ "type": "Microsoft.Network/routeTables", "name": "[variables('routeTableName')]", "apiVersion": "2015-05-01-preview", "location": "[parameters('location')]", "properties": { "routes": [ { "name": "VirtualApplianceRouteToSubnet3", "properties": { "addressPrefix": "[parameters('subnet3Prefix')]", "nextHopType": "VirtualAppliance", "nextHopIpAddress": "[variables('NvmPrivateIPAddress')]" } } ] } }
éèŠãªç¹ã«æ³šæããŠãã ããããã©ãã£ãã¯ã®æ¬¡ã®åä¿¡è
ã®ã¿ã€ããšã¢ãã¬ã¹ã瀺ããŸãã ãã®äŸã§ã¯ããã©ãã£ãã¯ããµãããã3ïŒä»®æ³ã¢ãã©ã€ã¢ã³ã¹ïŒã«å°éããå Žåã次ã®ïŒãã©ã€ããŒãïŒIPã¢ãã¬ã¹ã«ãªãã€ã¬ã¯ãããããšã瀺ããŠããŸãã
å¿
èŠãªè¿œå ã®æé ã¯ãæçµçãªããã¯ãšã³ããµããããããã©ã€ããŒãIPã¢ãã¬ã¹ãããã³ã«ãŒãããŒãã«éã«å¿
èŠãªæ¥ç¶ã確ç«ããããšã§ãã ãããè¡ãã«ã¯ããµããããããšã«ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ïŒNICïŒãäœæããŸãã ãã¹ãŠãããã³ããšã³ããµããããã«å¯ŸããŠã¢ã€ãã«ç¶æ
ã§ãããé¢å¿ã®ãªããã®ã§ããå Žåãããã¯ãšã³ãæ§æã§ã¯ããã»ã©åçŽã§ã¯ãããŸããã ãã®äžã§ããããªãã¯IPã¢ãã¬ã¹ãšãã©ã€ããŒãIPã¢ãã¬ã¹ã®æ¥ç¶ã瀺ããIPã®è»¢éãèš±å¯ããŸãã åæãããã«ãŒã¿ãŒãæã«å
¥ããŸããã
"properties": { "ipConfigurations": [ { "name": "ipconfig1", "properties": { "privateIPAllocationMethod": "Static", "privateIPAddress": "[variables('NvmPrivateIPAddress')]", "publicIPAddress": { "id": "[resourceId('Microsoft.Network/publicIPAddresses', parameters('PublicIPNameForVM2'))]" }, "subnet": { "id": "[variables('subnet2Ref')]" } } } ], "enableIPForwarding": true }
ä»ã®æ§ææ©èœïŒãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ãªã©ïŒãåã³ãã¢ã¯ã»ã¹å¯èœãªãã³ãã¬ãŒãã§è¿œè·¡ããããšããå§ãããŸãã ããã§ãä»®æ³ãã·ã³ã®äœæã«å¿
èŠãªãã¹ãŠã®ãã©ã¡ãŒã¿ãŒãäœæãããããã®ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ã瀺ããŸãã ãŸããWindowsäžã®ä»®æ³ãã·ã³ã®äžèšã®èšå®ã®ã³ã³ããã¹ãã§æããã§ãã
ãããã£ãŠãç®çã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãå±éããããæçµçã«äœãèµ·ãã£ããããã¹ãã§ããŸãã ããšãã°ãä»®æ³ã¢ãã©ã€ã¢ã³ã¹ïŒVM3ïŒãããã¯ãšã³ãã¬ãã«ïŒVM2ïŒã«èªç±ã«ã¢ã¯ã»ã¹ã§ããããšã远跡ã§ããŸãã æåã®virtuakiïŒããã³ããšã³ãã¬ã€ã€ãŒãVM1ïŒã«ç®ãåãããšãäºæ³ããããªãã€ã¬ã¯ããã©ã®ããã«çºçãããã远跡ã§ããŸãã

ãããããã»ã©åçŽã§ã¯ãªãã±ãŒã¹ãããŠãŒã¶ãŒå®çŸ©ã«ãŒãã£ã³ã°ãœãªã¥ãŒã·ã§ã³ã®äœææ¹æ³ã«ããçšåºŠã®ç解ãè¿œå ããããšãé¡ã£ãŠããŸãã ãŸãããã®èšäºã§ããã«å®éšããããã«ä¿ãããŠããªããŠããè¿ãå°æ¥ããã¯ããŒã¯ãããããšã¯ééããããŸããã
Express Routesã®äœ¿çšã«ã€ããŠäžèšãèšããŸããããã®äœ¿çšã®åºæ¬çãªã±ãŒã¹ã¯ããããã¯ãŒã¯ãµãŒãã¹ãAzureããã®ä»ã®Microsoftã¯ã©ãŠããµãŒãã¹ïŒOffice 365ãCRM OnlineïŒã«æ¥ç¶ããå¿
èŠãããããšã§ãã æ¢åã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ãããŒã¿ã»ã³ã¿ãŒïŒãªã³ãã¬ãã¹ïŒã«é
眮ããããšããå¥ã®å Žæã«é
眮ããããšãã§ããŸãã éèŠãªããš-確ç«ãããæ¥ç¶ã¯ãäžè¬çãªã€ã³ã¿ãŒãããæ¥ç¶ããåé¢ãããå°çšãã£ãã«ïŒé«éã«ãŒãåç·ïŒãä»ããŠè¡ãããŸãã æ¥ç¶ã¯ãä»ã®ã€ã³ã¿ãŒããããªãœãŒã¹ã ãã§ãªããMicrosoft AzureãµãŒãã¹ïŒã¹ãã¬ãŒãžãSQLããŒã¿ããŒã¹ïŒã§ãé€å€ãããŸãã åçã«ãŒãã£ã³ã°ã¯ãæšæºãããã³ã«ïŒBGPïŒã§è¡ãããŸãã Microsoftã¯ã©ãŠããµãŒãã¹ãžã®LANæ¥ç¶ã確ç«ããã«ã¯ãããã€ãã®æ¹æ³ããããŸãã

Cloud Exchangeã³ãã±ãŒã·ã§ã³ã®å Žåãæ¥ç¶ã¯Ethernet Exchangeã³ãã±ãŒã·ã§ã³ãããã€ããŒãä»ããŠè¡ãããŸãã æ¥ç¶ã確ç«ãããã®æ¹æ³ã«ãããããšãã°ãAzureãšã®ä»®æ³çžäºæ¥ç¶ãæäŸã§ããŸãã
ãã€ã³ãããŒãã€ã³ãæ¥ç¶ã¯ãäŒç€Ÿã®ããŒã«ã«ããŒã¿ã»ã³ã¿ãŒãšAzureã®éã«ã€ãŒãµããããããã¯ãŒã¯ãæäŸããŸãã ã¢ã¯ã»ã¹ã¯åŒãç¶ãå°çšãã£ãã«ãä»ããŠæäŸããããããªãã¯ã€ã³ã¿ãŒããããä»ããã¢ã¯ã»ã¹ã¯é€å€ãããŸãã
Any-to-Anyãããã¯ãŒã¯ã«ãããã°ããŒãã«WANã®Azureã¯ã©ãŠãïŒããšãã°ã倧èŠæš¡ãªå€§åŠã®ãã£ã³ãã¹ããªã¢ãŒãã¯ãŒã¯ãè¡ããªãã£ã¹ïŒãšã®çµ±åãå¯èœã«ãªããŸãã ããã¯ãMPLSããŒã¹ã®VPNã䜿çšããŠè¡ãããŸãã Azureã®ã³ã³ããã¹ãã§ã¯ãããã¯IPVPNãšåŒã°ããWANãAzureãå¥ã®ãã£ã³ãã¹ãŸãã¯ãªã¢ãŒããªãã£ã¹ãšããŠèªèã§ããããã«ããŸãã
ç¹å®ã®ã±ãŒã¹ã®æ°ã¯æ¬åœã«å€ããããã«æã£ãŠããã®ã¯éå°ã ãšæããŸããã Expressã«ãŒãã䜿çšããŠè§£æ±ºã§ããã±ãŒã¹ã®éèŠãªéšåã詳现ã«èª¬æããŠããéåžžã«æçšãªããã¥ã¡ã³ãã®ã¿ãåç
§ããŸãã
æåŸã«ãäžèšã®æ¥ç¶æ¹æ³ãçžäºã«ã©ã®ããã«çžäºäœçšãããã«ã€ããŠãå°ãèšããããšæããŸãã ãµããããã®ã«ãŒãããŒãã«ãæ瀺çã«æå®ããªãå Žåãããã©ã«ãã§ã·ã¹ãã ã«ãŒãã䜿çšãããŸãã ããŒãã«ã瀺ãããæ¥ç¶ã確ç«ãããå Žåãã«ãŒãã£ã³ã°ã¯UDRãšã·ã¹ãã ã«ãŒãéã®æé·ãã¬ãã£ãã¯ã¹ïŒLPMïŒã®äžèŽã«ãã£ãŠè¡ãããŸãã äžèŽããLPMå€ãæã€è€æ°ã®ã«ãŒããããå Žåãã«ãŒãã¯ãœãŒã¹ã«ãã£ãŠæ¬¡ã®é åºã§éžæãããŸãã
- UDR
- BGPã«ãŒãïŒExpressRouteã䜿çšããŠããå ŽåïŒ;
- ã·ã¹ãã ã«ãŒã
ãã®èšäºããæ°ããAzure Resource Managerã§Microsoft Azureã®ã«ãŒãã£ã³ã°ã®åé¡ã«é¢ããæŽå¯ãè¿œå ããããšãé¡ã£ãŠããŸãã Ahead-è² è·åæ£ããã³ãã€ããªãããœãªã¥ãŒã·ã§ã³ARMãASMããªã³ãã¬ãã¹ã åãšåãããã«ãç§ã¯ããªãã®è³ªåãšé¡ããæ¬åœã«æ¥œãã¿ã«ããŠããŸãã ãæž
èŽããããšãããããŸããïŒ