2016年11月30日 星期三

Amazon Web Service 技術介紹(二)

哈囉~ 大家好!!!

今天要跟各位繼續介紹 AWS 的第二部分「Storage & Content Delivery(儲存與內容交付)」,有玩過 AWS 的人都知道,僅次於 Instances 重要的服務就是 Storage,而這個儲存服務又以 S3(Amazon Simple Storage Service) 最為眾所皆知。

而這一節我們會介紹 Storage 的服務有下類這幾項:
  • Amazon Simple Storage Service (S3)
  • Amazon Glacier
  • Amazon Elastic Block Store (EBS)
  • AWS Storage Gateway
  • AWS Import/Export
  • Amazon CloudFront
以上這幾項都屬於儲存服務。接下來一樣先來張圖解大綱:


Step 1: 第二節「儲存與內容交付」


Step 2: AWS 儲存產品和服務

這節將會介紹以上這6個服務 "S3"、"Amazon Glacier"、"EBS"、"AWS Storage Gateway"、"AWS Import/Export"、"Amazon CloudFront"...等等。

Step 3: S3

其用途 or 優點如下:
(1)適用於網際網路的儲存空間
(2)原生於線上和HTTP存取
(3)可以從Web的任何位置、時間存取"任何量的資料"
(4)高延展性、可靠性、快速和耐用度

Step 4: S3 的概念 

(1)S3把資料以物件(Objects)的形式儲存在儲存桶(Buckets)
(2)物件是由檔案和描述資料(Metadata)一起組成
(3)每個帳號可以擁有達100個儲存桶
(4)可以控制存取擁有的儲存桶和桶內的物件

Step 5: S3 的儲存桶


(1)物件(Objects)存放在儲存桶(Buckets)
(2)物件可以直接經由URL存取
(3)擁有最高層級的 Amazon S3 命名位置
(4)辨識帳號-僅收取儲存和資料傳輸費用
(5)存取控制
(6)單位使用量彙整報告

Step 6: S3 的物件

什麼是物件(Objects)? 物件是存在 Amazon S3 最基本的單位體。
當用控制台時,可以當作是檔案。
而物件(Objects)是由資料(Data)和描述資料(Metadata)所組成。
Amazon S3看不到資料的內容,而描述資料(Metadata)是一組說明物件的名稱。
(1)預設描述資料是紀錄上一次資料的變更時間
(2)標準的 HTTP描述資料是紀錄資料內容型態
(3)客製化描述資料是紀錄存放物件時間
(4)金鑰是唯一識別在儲存桶裡的物件

Step 7: S3 物件的使用週期

使用週期管理的定義是 S3 如何在使用時間內管理物件的方法。有些物件存在儲存桶裡,或許有良好定義的使用週期:
(1)日誌檔案
(2)儲存文件
(3)儲存數位媒體
(4)儲存財務與健保紀錄
(5)原始基因序列資料
(6)長時間資料備份
(7)需要被監管遵守的保存資料(如:有法律效益的文件)

Step 8: S3 的收費方式

(1) 用多少就收多少
(2) 沒有限定低消
(3) 依 S3 儲存桶的所在地收費
(4) 可使用 AWS Simple Monthly Calculator(AWS簡易計算機) 估算月繳帳單

Step 9: S3 的實際情況

(1) 可以存放不限數量的物件在儲存桶中
(2) 每個物件容量可高達 5TB;但是儲存桶沒有容量限制
(3) 一年內耐用度可達 99.999999999%(11個9),物件可用度99.99%(4個9)
(4) 在 HTTP/S 的端點可以存取任何數量的資料、在任何的時間、任何Web上的位置
(5) 高擴充性、穩定性、快速和低收費
(6) 可選擇主機端用 AWS 直接加密或是由使用者管理用戶端加密
(7) 可存取日誌做稽核
(8) 提供標準 REST 和 SOAP 的介面

Step 10: Glacier

其用途 or 優點如下:
(1) 低成本的儲存裝置
(2) 提供安全、耐用的儲存空間給資料做備份和存放
(3) 優化不常使用的資料

Step 11: Glacier 的實際情況
 

(1) 可將營運管理和擴充檔案儲存交給 AWS,這可以更簡單的保存幾年或幾十年的資料
(2) 優化不常使用的資料,這也可以優化檢索時間
(3) Glacier 沒有限制儲存的資料容量
(4) 自動在主機端使用 AES 256 bit 對稱金鑰做加密
(5) 設計可提供平均儲存耐用度高達 99.999999999%(11的9)

Step 12: EBS

其用途 or 優點如下:
(1) 連續區塊級儲存裝置提供連續的容量以達到低延遲的效能
(2) 自動復原在自己的 AZ(可用區域)
(3) 可快照後並長期儲存到 S3

Step 13: EBS 的使用週期

大量的未使用空間 > 建立(呼叫 CreateVolume 1GB 到 16TB) > 連線(呼叫 AttachVolume 以連接一個EC2虛擬機) > 連線後使用中(1.從 EC2作業系統格式化 2.掛載已格式化好的磁碟) > 建立快照(快照到 S3) > 中斷連線(呼叫 DetachVolume) > 刪除(呼叫 DeleteVolume)

Step 14: EBS 的實際情況

(1) 有三種類型儲存磁區格式:一般型(SSD),儲備型 IOPS(SSD) 和 磁帶型(Magnetic)
(2) 可以用來建立 RAID 設定給主機使用
(3) 獨立儲存在虛擬機外的區塊式儲存空間
(4) 磁區塊作用跟未格式化給 Linux 或 Windows 主機的儲存裝置一樣
(5) 可用性有達 99.999%(5個9)
(6) 提供無縫式 AES-256 加密給 EBS資料容量和快照使用
(7) 當資料在 EC2 與 EBS之間的資料磁區移動時也會做加密
(8) 儲備型 IOPS(SSD) 磁區支援最大容量是 16TB和 2萬的 IOPS/磁區

Step 15: EBS 的使用案例

(1) 作業系統- 用在 boot/root 磁區及第2個磁區
(2) 資料庫- 可依效能需求做擴展
(3) 企業應用程式- 提供可靠的區塊式儲存空間給執行關鍵任務的應用程式
(4) 持續性業務- 使用 EBS快照功能做定期備份,以降低資料遺失風險和減少恢復時間

Step 16: EBS 的收費方式

依您所儲備的容量收費:
(1) 依所在區域收費
(2) AWS GovCloud(美國) 標價網頁
(3) 可線上檢視並計算標價

Step 17: EBS 最好的範例說明

(1) EBS 磁區都是在同一個AZ(可用區域)上
(2) 磁區內的資料可以在同一個AZ(可用區域)內多台主機間進行複製
例如 EBS磁區1都在AZ(可用區域)A內搬移資料,而EBS磁區2一樣都只在AZ(可用區域)B內做資料搬移

Step 18: EBS 與 S3 的比較


樣式:檔案系統(EBS);物件儲存(S3)
效能:非常快(EBS);快(S3)
備援:同一AZ中可跨主機(EBS);可跨設備或相同設備中可跨不同裝置(S3)
安全:EBS加密方式是對資料磁區與快照(EBS);對主機端做加密(S3)
存取 Internet:不可,但是如果掛載在主機上的FTP服務上可以(EBS);可以,但是需有登入權限且 ACL 必須設定成 world-readable(S3)
典型使用案例:同硬碟使用方法(EBS);用於寫入1次,讀取多次(S3)

Step 19: Storage Gateway

其用途 or 優點如下:
(1) 連接一個軟體設備環境到雲端的儲存裝置
(2) 在安全的機制下,上傳資料到AWS並提供合理的價格做備份和DR(災難復原)
(3) 可以鏡像部署資料到 EC2虛擬機上

Step 20: 架構圖

使用者 <-> 用戶端 <-> 應用程式主機 <iSCSI> 目標主機 <-> AWS(S3) or Local儲存設備

Step 21: Import/Export
其用途 or 優點如下:
(1) 可提供快速的存取功能,將大量資料搬進和移出 S3 or EBS
(2) 將傳輸的資料直接存取儲存裝置
(3) 使用 Amazon 高速內網做傳輸

Step 22: Import/Export 的支援

  • 可由 AWS Import/Export 匯入 S3
  • 可從 S3 匯出到 AWS Import/Export
  • 可由 AWS Import/Export 匯入 EBS
  • 可由 AWS Import/Export 匯入 Glacier

Step 23: CloudFront

其用途 or 優點如下:
(1) 簡單又平價的方式將內容發給使用者
(2) 低延遲且高速資料傳輸
(3) 可透過全球各地網路節點,交付包含動態、靜態、串流、互動式網站內容

Step 24: 更多儲存產品與服務

  • 是一種全權管理的儲存服務
  • 可以是隨時擴充檔案系統容量或效能的建議
  • 支援網路檔案系統協定第4版 (NFSv4)

Step 25: 隨堂測驗
Q:哪種 AWS 服務有支援網路應用程式卸載服務給固定資產、儲存使用者上傳的照片和影片到離線主機上? A:S3
Q:重要的應用程式和維運資料(如:日誌、用戶資料等等﹒﹒﹒)需要被永久備份保存的。要用哪種 AWS服務? A:Glacier
Q:哪種 AWS服務可以提供關聯式資料庫在 EC2上的日誌、檔案資料佔去 40GB及每個月有5%的成長? A:EBS
Q:您網路應用程式的固定資產- 及一些動態內容可以被做快取的。是要哪一 AWS服務可以支援? A:CloudFront

經過了這節漫長的說明,相信大家對於 AWS 關於 Storage 的服務、架構、或是要選擇哪種儲存服務做運用,都有了更深一層的認識。

就如同之前說過,AWS 所提供的 Cloud Service (雲端服務) 有很多,而要選對哪種服務才是真正需要而且比較經濟實惠的。這就必須要在做出抉擇之前,對 AWS 所提供的服務要先有一定程度的認識,才有辦法做出最正確的選擇。

有機會的話我們再慢慢對 AWS 其他的雲端服務做說明,這一節就先介紹到這裡,我們下次見~ Bye Bye!!!

~ See you ~

參考出處:
https://aws.amazon.com
©2016, Amazon Web Services, Inc. 或其附屬公司。保留所有權利。

2016年9月30日 星期五

Nginx SSL 測試環境 vs WAPT

哈囉~ 大家好!!!

這一節要介紹 Nginx 的 Web Server 測試環境,並且說明如何透過「SSL協定」來錄製 WAPT 的測試腳本做效能測試。

首先稍微介紹一下「Nginx」,可能大家對於這個名詞還蠻陌生的。可能連如何唸這個字,都還是一頭霧水 Nginx 一詞是由 「Engine X 」衍生而來,是由俄羅斯人 Igor Sysoev 所寫的一個 HTTP Web Server 和 Reverse Proxy Server (反向代理伺服器),目前有部分公司開始採用 Nginx 來取代原有的 Web Server,較出名的有 Wikipedia (英文版維基百科)、Sina 新浪部落豆瓣等等。

選擇 Nginx 的優點如下:
  • 可以處理大量的平行連線數
  • 使用較少的記憶體空間
  • 支援開放原始碼可提供免費商業用途
  • 提供負載平衡機制
  • 支援 Rewrite 規則,可同時佈署多台伺服器
  • 支援 GZIP 壓縮技術,提高瀏覽速度
  • 容易設定、內部監控、穩定度高、支援長時間運作等
介紹完 Nginx 接下來就開始我們這一節的說明,照慣例先來一張圖解大綱:

Step 1: Install Nginx in CentOS 7.0 be a Target Server
Create the nginx.repo file for yum, type the command as below.
# vi /etc/yum.repos.d/nginx.repo


Step 1.1: Copy and paste script as below then save as a file "nginx.repo"
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7<depend on version>/$basearch/
gpgcheck=0

enabled=1


Step 1.2: Install Nginx via yum, type the command as below.
#yum install nagix


Step 2: Configuration Nginx to enable HTTPS service
Create a pair of SSL certificates, type the command as below.
#cd /etc/pki/tls/certs


Step 2.1: Make an Access key, type the command as below
#make access.key


Step 2.2: Remove passphrase from private key, type the command as below.
#openssl rsa -in access.key -out access.key

Step 2.3: Make an Access CSR, type the command as below.
#make access.csr


Step 2.4: Generate the private key, type the command as below.
#openssl x509 -in access.csr -out access.crt -req -signkey access.key -days 3650


Step 2.5: Config nginx.conf for HTTPS, type the command as below.
# vi /etc/nginx/nginx.conf


Step 2.6: Copy and paste script as below then save the file "nginx.conf"
## HTTPS server
    server {
        listen       443 ssl;
        server_name  localhost;
        ssl_certificate      /etc/pki/tls/certs/access.crt;
        ssl_certificate_key  /etc/pki/tls/certs/access.key;
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }

    }

Step 2.7: Restart Nginx service, type the command as below.
#systemctl restart nginx

Step 3: Enable HTTPS service port 443 in firewall
Type the command as below
#firewall-cmd --add-service=https --permanent

Step 3.1: Restart Firewall service
Type the command as below
#firewall-cmd --reload

Step 4: Verify Nginx HTTPS service
Enter https://<IP> or <hostname> in WAPT web browser.


Step 5: Open WAPT,Click WAPT Pro 3.5



Step 5: New a Scenario

Step 6: Select "Performance Test" then click "Next >"

Step 7: Set the virtual users for the test load spec, this time keep as default then click "Next >"

Step 8: Setting the test duration, this case keep as default then click "Next >" 

Step 9: Tick start recording virtual user profiles then click "Finish"

Step 10: Enter the profile name "Nginx_SSL select browser then click "Parameterization..."

Step 11: Select "HTTPS" then First check "Use client certificate" and select "access.crt" copy from Step 2, Second check "Private key is contained in a separate file" and select "access.key" copy from Step 2 then click "OK"

Step 12: Click "OK"

Step 13: Click "Proceed with recording"

Step 14: Enter "https://10.8.1.8" at Address: then click "Go"


Step 15: Successful to see "Welcome to nginx!" then click "Stop Rec"


Step 16: After this can click "Verify Test" and "Run Test" to run Performance Test with WAPT



Congratulations!!!

經過了漫長的安裝 Nginx 到設定、到創造 SSL Certificate、到設定 Niginx SSL 服務、到WAPT 設定 SSL Certificate、到錄製測試腳本,到最後再執行效能測試,這可以說是一個漫長的說明。

相信經過了這次較詳細說明,各位對於 WAPT 與 HTTPS 之間的測試方法,是不是有了更進一步的瞭解。下次有機會我們再對於 WAPT 上的一些參數設定分節做說明。那這一節就先介紹到這裡。我們下次見~ Bye Bye!!!

~ See you ~

參考出處:
http://www.loadtestingtool.com/help/ui-ssl-settings.shtml
https://www.server-world.info/en/note?os=CentOS_7&p=nginx&f=4