2018年1月26日 星期五

如何在AWS上進行平衡負載、網域名稱與SSL憑證(免費)的設定

在前面的文章有介紹到,該如何在Azure進行WebApp的自訂網域名稱與SSL憑證購買的方式,此次我們來介紹該如何在Amazon AWS上進行相同的動作。

關於費用的部份,在AWS中申請憑證是完全免費的,而在自訂網域名稱的部份會依照你選定的網域類型而定,如.com、.org等。

https://aws.amazon.com/tw/certificate-manager/pricing/

前導文章介紹:
如何進行自訂網域與SSL憑證購買,並綁定於App Service for Web中。
http://caryhsu.blogspot.jp/2017/02/azuressl.html


開始安裝設定:
1、Web Server安裝與設定
在這邊我準備了二台Windows on EC2進行,進行前請確認各Instance可以透過IP or DNS Name正常的存取到網站。


2、Custom Domain Name申請
2-1 請先登入Route 53,並選擇 Domain Registration

2-2 選擇 Register Domain

2-3 輸入你要註冊的Domain Name先進行檢查,確認名稱是否已有被申請。

2-4 填寫個人的資訊,這部份請特別注意在聯絡資訊的部份,由其是E-Mail與電話,後續上會進行認證的動作,所以請確認填寫無誤。

2-5 最後訊息確認

2-6 訊息確認的同時下方會有E-Mail確認的資訊,此時請到你的E-Mail收件匣中進行確認。

2-7 你會收到一封如下的E-Mail確認信件,請點連結後進行回覆。

2-8 回覆後,確認E-Mail驗證的程序已完成。

2-9 回到剛剛在2-6步驟中,你會看到狀態即會進行改變。

2-10 完成註冊,此時大約仍要等一陣子,新的域名才會進行生效。
2-11 回到Route 53的Dashboard頁面,你即會看到域名的狀態,如下列所示,申請的域名即完成。


3、憑證申請
3-1 開啟ACM(AWS Certificate Manager)畫面,點選 Get started。

3-2 請在下列輸入你要申請的網域名稱,可以輸入多個。

3-3 驗證方式有二種,此步驟,我們選擇Email Validation進行。

3-4 再次確認訊息。

3-5 此時憑證申請的畫面會停在等往網域名稱確認的狀態中。

3-6 此時系統會寄出一封確認信到網域名稱的擁有者信箱中進行確認,格式如下,請點選下方 "Amazon  Certificate Approvals"。


3-7 開啟網頁後,再次進行同意確認。

3-8 確認畫面。

3-9 回到ACM(AWS Certificate Manager),你就會看到憑證完成。

4、ALB(Application Load Balancer)設定
4-1 進入Load Balancers的畫面,選擇建立Application Load Balancer。

4-2 選擇Listeners的Protocol類型與AZ(Availability Zones)區域,由於我的二台主機放在us-east-1c與 us-east-1d,所以我就先選擇這二個區域。

4-3 憑證的部份,我們直接透過ACM(AWS Certificate Manager)進行選擇,系統即會帶出我在步驟3所建立的憑證。

4-4 選擇Security Groups,請記得確認是否有開啟HTTP(80)與HTTPS(443)。

4-5 由於我們希望ALB(Application Load Balancer)支援HTTP與HTTPS,所以這部份選擇HTTP即可。

4-5 ALB的Group主機請將你的主機加入,請記得不是只有勾選,要選擇Add to Registered加入後才算是。

4-6 最後訊息確認

4-7 建立完成後,我們同時透過ALB的DNS進行確認,看是否可以正確的導向二台主機。


5、Custom Domain Name與ALB(Application Load Balancer)的綁定。
5-1 點選網域名稱

5-2 點選Create Record Set

5-3 此時我們將ALB的DNS輸入在下方的區域,然後點選完成。


5-4 最後,我們透過申請的網址名稱與HTTPS的方式進行存取,確認皆可看到連線都正常。


參考連結:
Request a Certificate
https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request.html
Create an Application Load Balancer
https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html
HTTPS Listeners for Your Application Load Balancer
https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html
Routing Traffic to an ELB Load Balancer
https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-elb-load-balancer.html

2018年1月12日 星期五

如何在AWS EC2上以Windows Server 2016建立Microsoft Storage Spaces Direct(S2D)的架構

相信大家對S2D的架構或多或少都知道,其實在Windows 2012 R2的時候就已經有推出支援,但在Windows 2016上又有許多的更新,相關的安裝方式其實在網路上已有許多的參考,所以這篇我要特別整理如何在AWS EC2進行建立,當然安裝上沒有太大的落差,但在一些細部的設定上需要特別的注意,我在此整理出來,也提供給大家參考。

S2D系統架構圖

1、環境準備
AD Server -> Windows 2012 R2
Cluster Node1 -> Windows 2016
Cluster Node2 -> Windows 2016

另外在上述的二個節點上增加各二顆Disk,然後請注意在容量上請選擇相同的大小。

2、環境安裝
2-1 Instance Type選擇
在一開始的的Instance Type的部份,請注意目前測試C5可以進行,因為根據下列的S2D的需求項目一定要符合,要不然在最後建立完Cluster後,當進行Enable-ClusterS2D會出現下列的錯誤訊息,這部份需要再進行注意。


錯誤訊息:
Enable-ClusterS2D:No disks with supported bus types found to be used for S2D.
FullyQualifiedErrorId : HRESULT 0x80070490, Enable-ClusterStorageSpacesDirect

Driver:
Use local-attached SATA, SAS, or NVMe drives.

2-2 Private IP設定

在節點的部份,請特別注意最好設定Private IP在下列的位置上。


3、節點設定與確認
開機登入後,從系統 -> 裝置管理員 -> 確認目前的Disk Drives是否皆為NVMe的類型,如下圖所示。

在建立完成後,請將二個節點分別加入到Cluster中,並確認狀態皆為UP。


4、啟用與設定S2D
4-1 透過Administrator開啟一個PowerShell視窗,並輸入 Enable-ClusterS2D 的功能。

執行完成後,你就可以從 Failover Cluster Manager -> Storage -> Pools中看到已建立一個Cluster Pool。



4-2 透過下列的語法確認目前可能的磁碟。

get-StorageSubSystem Clus* | get-PhysicalDisk

4-3 透過下列的指令進行Volume的建立

New-Volume -StoragePoolFriendlyName S2D* -FriendlyName SQLDataDisk1 -FileSystem CSVFS_NTFS -AllocationUnitSize 65536 -Size 50GB -ProvisioningType Fixed -ResiliencySettingName Mirror

執行過程

4-4 最後建立完成,你就可以到Failover Cluster Manager -> Storage -> Disks的部份看到。



參考連結:
Microsoft SDS 軟體定義儲存技術(2) - S2D 運作架構
https://technet.microsoft.com/zh-tw/mt684933.aspx
Storage Spaces Direct hardware requirements
https://docs.microsoft.com/en-us/windows-server/storage/storage-spaces/storage-spaces-direct-hardware-requirements

2018年1月2日 星期二

如何快速在AWS EC2與AWS Microsoft AD上建立SQL Server AlwaysOn。

在之前的文章,我介紹過許多安裝SQL Server AlwaysOn的方式,但現在我來介紹一個快速安裝的方式,可以在AWS EC2上快速的透過範本(CloudFormation)進行建立所需要的SQL Server AlwaysOn的架構。

另外在安裝上由於透過AWS Microsoft AD與SQL Server AlwaysOn這二個選項安裝時,在建立Availability Group Listener會遇到一些問題,所以本篇也特別說明如何排除,再請參考。

建立步驟:
一、環境安裝與建立
1、請先點選下列的網址 -> Launch Quick Start (for New VPC),進行建立。

SQL Server on the AWS Cloud: Quick Start Reference Deployment
https://docs.aws.amazon.com/quickstart/latest/sql/welcome.html


2、透過範本的方式快速的建立,在此請先確定你要建立的Regions為何,另外可以在下方看到範本的位址,當然如果你有興趣,也可以自行下載進行修改與調整。


3、在此由於我以簡單的二個節點進行安裝,所以在Availability Zones我只選擇二個,另外關於每個節點的劃分,如沒有特別的規劃,可以使用預設值即可。

4、選擇自已的Key Pair,此處可以選擇已存在此Regions的Key Pair,如果沒有新增的話,請記得先行設定。

5、在此處,我們選擇使用AWS Directory Service for Microsoft AD,當然你也可以選擇Microsoft AD on Amazon EC2的方式進行,此時系統會自行建立二台EC2 for AD進行。

6、選擇Microsoft SQL Server的版本,目前可以選擇的有2014、2016、2017的版本可以選擇。

7、最後勾選確認後,即可開始進行。

8、切換到CloudFormation,確認是否已建立完成,約不到30分鐘的時間,一個AD服務與四台EC2都已建立完成。

9、切換到EC2的頁面,你也可以看到4台EC2也確認都建立完成了。另外RDGW是主要負責對外連線的電腦,所以我們要透過此電腦進行連線。

10、透過RDGW,然後再連到Node1進行確認,你可以看到此時二台的SQL Server皆已安裝完成。


二、AlwaysOn建立與測試
1、請先手動建立一個測試用的資料庫,並請確認複原模式為Full,建立完成後也請手動進行一次完整備份。


2、此時如果你直接進行AlwaysOn安裝的話,由其是在建立Listener,你會遇到下列的錯誤,所以我們要先作一些設定。

錯誤訊息:
Create failed for Availability Group Listener 'carylistener'.

The WSFC cluster could not bring the Network Name resource with DNS name 'carylistener' online. The DNS name may have been taken or have a conflict with existing name services, or the WSFC cluster service may not be running or may be inaccessible. Use a different DNS name to resolve name conflicts, or check the WSFC cluster log for more information.


PS:此問題我原先是懷疑是否是已有存在相同的名稱,但是一來這是新建的AD,二來透過不同的名稱建立也是相同的情況,所以排除此情況的可能性。

3、此時我先透過RDGW的機器安裝AD的管理工具,藉以進行管理AWS Microsoft AD。

4、安裝完成後,請開啟Active Directory Users and Computers,並連線到AWS Microsoft AD -> AD的OU名稱 -> Computer。

5、選擇新增Computer物件。


5、啟用進階設定。

6、選擇建立好的Listener -> Properties -> Security -> Add -> Cluster Name -> 並請將下列的權限進行賦予,或是你也可以直接給予Full Control的權限。

建議權限:
Read
Allowed To Authenticate
Change Password
Receive As
Reset Password
Send As
Validate write To DNS Host Name
Validate Write To Service Principle Name
Read Account Restrictions
Write Account Restrictions
Read DNS Host Name Attributes
Read MS-TS-GatewayAccess
Read Personal Information
Read Public Information


7、連線到主要的節點上,選擇Availability Groups -> New Availability Group Wizard

8、在Replicas的部份請記得將二個節點都加入,然後切換到Listener的部份,名稱請使用在第5個步驟中設定的名稱,而IP請選擇各節點中的Secondary Proviate IPs中的第二個加入。

第一個節點


第二個節點


 9、確定建立完成。

10、檢查並確認Listener建立完成。


上述的方式提供給大家不同安裝AlwaysOn的方式,依照上述的設定,其實真的不用10分鐘就可以建立完成(不包含等待的30分鐘),而且跟自已手動建立的,真的沒有其他的不同,推鑑下次大家可以參考看看。


參考連結:
SQL Server on the AWS Cloud: Quick Start Reference Deployment
https://docs.aws.amazon.com/quickstart/latest/sql/welcome.html
Create Listener Fails with Message ‘The WSFC cluster could not bring the Network Name resource online’
https://blogs.msdn.microsoft.com/alwaysonpro/2014/03/25/create-listener-fails-with-message-the-wsfc-cluster-could-not-bring-the-network-name-resource-online/
Create Availability Group Listener Fails with Message 19471, ‘The WSFC cluster could not bring the Network Name resource online’
https://blogs.msdn.microsoft.com/alwaysonpro/2013/10/30/create-availability-group-listener-fails-with-message-19471-the-wsfc-cluster-could-not-bring-the-network-name-resource-online/