跳到主要內容

Google Compute Engine Global Load Balancer

Google Compute Engine服務為了在雲服務上更完整,在GLB上當然是不可或缺,這邊介紹的Globsl Load Balancer(GLB)是Google新推出的雲端負載平衡應用,讓使用者可以透過網頁設定串聯全球的應用程式伺服器....
目錄分類在Compute Engine之下:
點選Create之後,會建立一個所屬的GLB(Global LB) Instance,而在其中包含兩個部分:
  • Incoming traffic: 管理入口設定,包含forward rule與最下面的URL map
  • forward rule: 管理路由設定,包含開放哪個port, GLB ip address等
  • URL map: 管理url對應到的pool,可以讓特定的url指到特定的server pool
  • Backend services: 設定後面要服務的backend server群組,在GLB中,可以跨Region指定instance
增加一個global forward rule:
Backend service 設定,透過建立instance group與選擇group的成員instances來建立backend service,在這邊可以指定load sharing的機制、分散的策略...等等
等全部資訊填寫完畢,則可以下一步...
下一部包含新增加VM instances
按下"Add"確認之後,則會將對應的backend instance group設定出來,此時可以修改Backend對應到的port number跟timeout時間...
在選擇existing instance group中,是讓您可以選擇前面步驟所建立的group做request的承載... 這邊可以選擇instance的QPS, Utilize等等
最後設定forwarding rule… 這邊目前只允許80, 8080,這亦代表Traffic目前尚不支援SSL offload功能,SSL offload相關應該未來才會提供... (SSL offload可以降低AP server的負擔,但也意味著進到該LB服務後,SSL已經消失,所有資訊以明碼傳送...)
關於最下面的CAPACITY選項,如果勾取可以設定Drain的相關設定,該設定關係到之後調整Pool Size時候,GLB deliver traffic的策略.... (ex: 據猜測... Drain traffic = 80%,代表traffic降低到80%即可以detach異動的主機...)
目前提供forward port包含80, 8080,如果您是Tomcat應用服務,可以修改設定為forward 8080...
設定完成後,在資源的細部頁面可以看到資源健康狀態,而因為GLB預設一定要掛載一個Health Check,所以在這邊可以看到Check後正常跟不正常的instance列表...
點選最下面"Configure optional URL map",可以設定URL相關對應rule...
記得將對應的firewall rule(iptables, gce network firewall)開啓後,服務即可透過GLB IP正常連線...

留言

這個網誌中的熱門文章

Google指令碼基本操作介紹 - Web Server篇

Google的指令碼是什麼東西呢?!原則上他就是Google的一份靜態檔案,但是透過Google的雲端服務平台的一些能力,將靜態檔案內的scriptlet片段拉到Google的後端作運算,寫起來就像在寫JavaScript(這邊說Node.js可能比較貼切,因為同為server side language)或JSP,而在scriptlet片段中,則可以操作許多Google的API服務,甚至他提供你連接JDBC的能力、URL呼叫的能力...等,宛如就是一套完整的雲端程式語言(這樣說應該不為過拉,這真是個創新!),有並駕於App Engine的氣勢喔!
Google指令碼的範圍很廣,筆者也仍在摸索中,之前介紹過透過Sheet+指令碼做一個簡單的URL監控(這裡),而本篇簡單介紹一下指令碼如何製作一個Web Server(嚴格說起來是Web Page拉,但是具備Server端運作功能喔!)。您將可以體驗到No-Hosting Web Server的威力!
指令碼是Google Drive的一個服務,Google將指令碼(Code)以檔案方式寄存在Drive中,類似的靜態檔案服務的應用,最近滿火紅的!

首先開啟指令碼時候,選擇"作為網路應用程式的指令碼",檔案開啟後,會有愈設定程式碼片段供編輯


程式碼片段大致上如下,是一個doGet function,Web base的指令碼需要認得doGet()作為server的進入點 如果選擇到空白專案的話,只要把doGet function建上即可

作為一個Cloud IDE,Google當然也有把Code Hint擺上來,透過簡單的提示,寫啟程是來就更容易拉!

而Web部分物件的建立主要是透過HtmlService這個模組來進行操作,我們利用他來output html, load static html page, load template html page..等,範例如下:
Output HTML: // Script-as-app template.
function doGet(e) {
  return HtmlService.createHtmlOutput("<h1>HELLO!</h1>");
}
透過上HtmlService的createHtmlOutput的功能,…

透過Google指令碼,存取Google Cloud SQL

既然Cloud SQL提供了MySQL的Feature 那麼透過指令碼(Apps Script)來存取Cloud SQL應該也是OK的拉! 這邊介紹一下在指令碼中操作的方式
首先要確認一下您在Cloud SQL中申請的DB Instance名稱 而名稱可以在API Console中找到

此範例是屬於手動執行的部份,因此這邊建一個test function來收容db query的code...
function test(){
  var conn = Jdbc.getCloudSqlConnection("jdbc:google:rdbms://[db instance name]/[db name]");
  var stmt = conn.createStatement();
  stmt.setMaxRows(100);
  var start = new Date();
  var sql = "select * from member_info";
  var rs = stmt.executeQuery(sql);
  Logger.log('SQL:' + sql);
  while(rs.next()){
    Logger.log('['+new Date().toString() + ']' + rs.getString(1) + '::' + rs.getString(2) );
  }
}
Project看起來像這樣:

此時,在工具列選擇要執行的Function後,點選執行按鈕,就可以執行撈取Cloud SQL的動作了...

執行時候會發現Google會跟您要求受權,請user同意讓Script Editor來執行這部份程式,同意後才可以執行... 這部份是說,如果將來把這段程式碼放到Web Service中時候,該Web Service App也需要經過授權才能使用...

New Google Form Feature...

Google這次在Google Form上面做了一些改變...原本的Google Form背後都會連結到一個特定的表單(一個Form一個表單) 這次的修改就是針對這部份的限制做改善 目前可以透過Form編輯的頁面上"選擇回憶目的地"來選擇...



這邊是選擇的畫面,可以選擇新的試算表或是選擇現有的試算表中的新工作表...


如此一來,表單的運作將更具彈性拉!
詳細的Google說明,可以在這邊找到:https://support.google.com/drive/bin/answer.py?hl=en&answer=2917686&p=forms_response