---
# System prepended metadata

title: 「10/30 在 Azure 雲平台上架設企業網站」的課程筆記
tags: [課程筆記]

---

「10/30 在 Azure 雲平台上架設企業網站」的課程筆記
===
本課程將透過四種方面：網路、計算、存儲及安全讓學員習得 Azure 的核心服務及彈性服務管理服務，如 Virtual Network、Virtual Machines、managed disks、Blob storage、Database 以及 Active Directory、Role Based Access Control、Load Balancer 及 Virtual Machine Scale Sets 等服務。利用這些服務打造架構完整且具可擴展之高彈性的企業網站環境，在節省成本及人員的前提下，解決流量龐大時造成網站無法瀏覽而造成企業損失的問題。  

#### 課程內容：  
* 章節 01: Azure 核心服務-1  
* 章節 02: Azure 核心服務-2  
* 章節 03: Azure 彈性管理服務  
* 章節 04: Azure 架構設計原則  
* 章節 05: 實踐彈性架構 （實驗室時間）  



[:floppy_disk: 課程 PDF 講義下載點](https://drive.google.com/file/d/1LYMqMm0vImp1SBlpV6Z9ujvsmSMNoQ3W/view?usp=sharing)

[:floppy_disk: 課程資源下載點](https://drive.google.com/file/d/1YLBltKkRkuwiIpfoDCz_0yUwefnR7ZGr/view?usp=sharing)

可以在講師的 GitHub 下載到 : https://github.com/JamesHsu333

## Build Static Website with Azure blob storage
建立 static website （不需開啟 VM 或 Container）

### Create Storage account
* Azure 登入網頁：https://portal.azure.com/#home  
* 搜尋 Storage accounts 並新增  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/1.Static_Website_with_Blob_Storage/images/Create-Storage-Acccount.png)
* 按下 Review+create 略過設定  

### Create Static website hosting through Storage account settings
點擊 Settings 下的 Static website 選項  
Enable 此功能  
填入預設開啟的網頁檔案為 index.html  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/1.Static_Website_with_Blob_Storage/images/Static-website-setting.png)
最後記得存檔按下 Save 按鈕  

### Upload files to blob  
點擊 $web 進入上傳頁面  
並上傳課程資源內的 index.html 檔案  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/1.Static_Website_with_Blob_Storage/images/Upload-web-page.png)  

### View blob static website hosting
點擊 Settings 下的 Static website 選項   
複製 Primary Endpoint 欄位內的 URL  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/1.Static_Website_with_Blob_Storage/images/Copy-primary-endpoint.png)
把上面的 URL 貼在瀏覽器上，就可以看到 index.html 的網頁內容  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/1.Static_Website_with_Blob_Storage/images/Website.png)

## Build LAMP Structure in Azure Virtual Machine
使用 VM 建立 LAMP 並使用 Azure SQL Database    
* 解釋 LAMP
```
OS：Linux  
Server:Apache  
DB:MySQL  
Web:PHP  
```

### Create Virtual Machine
搜尋 Virtual Machine 並選擇 Static website  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/2.Build_LAMP_Structure_in_Azure_VM/images/Create-VM-1.png)
點擊 Add  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/2.Build_LAMP_Structure_in_Azure_VM/images/Create-VM-2.png)
這邊使用 Ubuntu Server 18.04 LTS 的 Image  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/2.Build_LAMP_Structure_in_Azure_VM/images/Create-VM-3.png)

Authentication type 因為是課程訓練，所以登入方式我選 password  
Select inbound ports 我選 HTTP (80), HTTPS (443), SSH (22)  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/2.Build_LAMP_Structure_in_Azure_VM/images/Create-VM-4.png)
選擇 Advanced 頁纖  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/2.Build_LAMP_Structure_in_Azure_VM/images/Create-VM-5.png)
Cloud init 內貼上 VM 所需要安裝的套件腳本  
```
#cloud-config
runcmd:
- 'sudo wget https://raw.githubusercontent.com/JamesHsu333/ScaleSet/master/2.Build_LAMP_Structure_in_Azure_VM/runscript.sh'
- 'sudo chmod +x runscript.sh'
```
按下 Review + create  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/2.Build_LAMP_Structure_in_Azure_VM/images/Create-VM-6.png0)
等一會後，按下 Go to Resource  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/2.Build_LAMP_Structure_in_Azure_VM/images/Create-VM-7.png)

* 紀錄 VM 登入帳密，等等會用到 

### Connect to Virtual Machine
![](https://github.com/JamesHsu333/ScaleSet/raw/master/2.Build_LAMP_Structure_in_Azure_VM/images/Connect-VM-1.png)

* 使用 cmd 進行 ssh 連線到 Ubuntu  
![](https://i.imgur.com/Q0SjssE.png)

* 找出 Public IP address  
貼 URL 在瀏覽器就能找到程式執行畫面  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/2.Build_LAMP_Structure_in_Azure_VM/images/Connect-VM-5.png)

```
輸入指令： ssh 帳號@IP  
ssh ubuntu@23.96.2.58  
```
![](https://i.imgur.com/v3m13xj.png)
切換權限為 root  輸入 sudo su  
執行一下 / runscript.sh  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/2.Build_LAMP_Structure_in_Azure_VM/images/Connect-VM-4.png)  

## Create SQL database
搜尋一下 SQL database  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/2.Build_LAMP_Structure_in_Azure_VM/images/Create-SQL-1.png)
點擊 Add 按鈕  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/2.Build_LAMP_Structure_in_Azure_VM/images/Create-SQL-2.png)
Server 欄位點擊 Create new 按鈕  
輸入 Server name, Server admin login & Password  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/2.Build_LAMP_Structure_in_Azure_VM/images/Create-SQL-3.png)
Using existing data 欄位選擇 Sample  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/2.Build_LAMP_Structure_in_Azure_VM/images/Create-SQL-4.png)
點擊 Review + create 按鈕  
 
![](https://i.imgur.com/gG1VzCT.png)
紀錄 DB 登入帳密，等等會用到 

發佈完後，點擊 Go to Resource 按鈕  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/2.Build_LAMP_Structure_in_Azure_VM/images/Create-SQL-5.png)

### Set SQL database
選擇 Query editor 這裡可以測試一下 DB 登入是否正常  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/2.Build_LAMP_Structure_in_Azure_VM/images/Set-SQL-1.png)
輸入剛剛的帳密
![](https://github.com/JamesHsu333/ScaleSet/raw/master/2.Build_LAMP_Structure_in_Azure_VM/images/Set-SQL-2.png)
無法登入時，點擊 Set server firewall 進行防火牆設定  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/2.Build_LAMP_Structure_in_Azure_VM/images/Set-SQL-2.png)
開設定 On 並複製 Client IP address 到 Start IP & End IP 並存檔 Save  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/2.Build_LAMP_Structure_in_Azure_VM/images/Set-SQL-3.png)
就能正常登入 DB 了  

### Connect to SQL database
開啟網頁，並輸入 DB 資訊，就能看到畫面上有資料出現了    
![](https://github.com/JamesHsu333/ScaleSet/raw/master/2.Build_LAMP_Structure_in_Azure_VM/images/Connect-SQL-1.png)

## Scale Set
依據 VM 上面的 CPU 負載率，進行開啟或關閉新 VM  

### Create Virtual Network
搜尋 virtual network  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/3.Build_Static_Website_with_Azure_VM_Scale_Set/Images/002-Searchresource.png)
點擊 Create 按鈕  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/3.Build_Static_Website_with_Azure_VM_Scale_Set/Images/004-Click%20Create.png)
點擊 Create 按鈕  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/3.Build_Static_Website_with_Azure_VM_Scale_Set/Images/005-VnetInfo.png)
發佈完後，點擊 Go to resource  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/3.Build_Static_Website_with_Azure_VM_Scale_Set/Images/006-DeploySuccess.png)
選擇 Address space  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/3.Build_Static_Website_with_Azure_VM_Scale_Set/Images/007-VnetAddressSpace.png)
選擇 Subnets  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/3.Build_Static_Website_with_Azure_VM_Scale_Set/Images/008-VnetSubnet.png)

### Create Virtual Machine Scale Set
搜尋 virtual machine scale set  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/3.Build_Static_Website_with_Azure_VM_Scale_Set/Images/010-Search%20resource.png)
點擊 Virtual machine scale set  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/3.Build_Static_Website_with_Azure_VM_Scale_Set/Images/011-Choose%20ScaleSet.png)
點擊 Create 按鈕  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/3.Build_Static_Website_with_Azure_VM_Scale_Set/Images/012-Click%20Create.png)
![](https://github.com/JamesHsu333/ScaleSet/raw/master/3.Build_Static_Website_with_Azure_VM_Scale_Set/Images/013-ScaleSetInfo.png)
![](https://github.com/JamesHsu333/ScaleSet/raw/master/3.Build_Static_Website_with_Azure_VM_Scale_Set/Images/015-ScaleSetInfo.png)
![](https://github.com/JamesHsu333/ScaleSet/raw/master/3.Build_Static_Website_with_Azure_VM_Scale_Set/Images/017-ScaleSetInfo.png)
發佈後 Go to resource
![](https://github.com/JamesHsu333/ScaleSet/raw/master/3.Build_Static_Website_with_Azure_VM_Scale_Set/Images/021-DeploySuccess.jpg)
選擇 Instances 裡面已經有 VM 開啟了  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/3.Build_Static_Website_with_Azure_VM_Scale_Set/Images/022-ViewInstances.png)
選擇 Scaling 設定 VM 開啟上限數量與開啟關閉的條件
![](https://github.com/JamesHsu333/ScaleSet/raw/master/3.Build_Static_Website_with_Azure_VM_Scale_Set/Images/023-Scaling.png)
![](https://github.com/JamesHsu333/ScaleSet/raw/master/3.Build_Static_Website_with_Azure_VM_Scale_Set/Images/024-ChooseScaleOut.png)
紀錄 Scale Set 的 VM 登入帳密，等等會用到 

### Connect to Linux Virtual Machine
點擊 Instances 內的 VM 選項  
![](https://github.com/JamesHsu333/ScaleSet/raw/master/3.Build_Static_Website_with_Azure_VM_Scale_Set/Images/030-ChooseVM.png)

選擇 Overview 的 Connect
![](https://github.com/JamesHsu333/ScaleSet/raw/master/3.Build_Static_Website_with_Azure_VM_Scale_Set/Images/031-DownloadRDP.png)

安裝增加 CPU 的工具並執行  
```
sudo apt-get update
sudo apt-get install stress
stress --version

stress -c 4
```
![](https://github.com/JamesHsu333/ScaleSet/raw/master/3.Build_Static_Website_with_Azure_VM_Scale_Set/Images/036.png)
由於 CPU 增加，便會開啟新的 VM  

## Cost Management
這個功能可以知道目前資源的使用費用  


###### tags: `課程筆記`