最新

雲端架構延遲問題:為什麼AP與DB不能放太遠?

雲端與地端的架構差異認知不足導致的性能陷阱 前言 許多企業在上雲初期,經常基於成本考量或錯誤認知,將應用程式伺服器(AP)與資料庫(DB)部署在不同區域。這種做法在地端環境中影響較小,但在雲端環境中卻會造成嚴重的性能問題。本文透過台北-東京的實際案例,說明距離對雲端架構的致命影響。 核心問題: * 地端思維:同個機房內不同區域延遲可忽略 * 雲端現實:跨區域延遲可達數十毫秒 * 結果:連線建立時間從毫秒級暴增到秒級 1. 地端 vs 雲端的延遲差異 1.1 地端環境的延遲特性 傳統地端機房: 同機房不同機櫃:RTT < 1ms 同城市不同機房:RTT < 5ms 同國家不同城市:RTT < 20ms 地端架構師的經驗: * AP和DB分別放在不同機櫃:幾乎無延遲影響 * 災備機房放在不同城市:RTT約10-15ms,可接受 * 習慣性認為「網路延遲不是問題」

By Albert Yu

2021ironman 13th – DevOps – Day04 – Amazon ECS Anywhere 基礎說明與建置(下)

先前將主機已經註冊上去了 那接下來就是進到『Task Definitions』開始來建立服務 點選『Create new Task Definition』 因為我們是要建立ECS Anywhere 點選『EXTERNAL』再來 Next Step Task definition name 輸入服務名稱,我這邊只是先建立一個apache測試環境所以名稱直接用『apache』 Network mode 記得保持預設 輸入這個Task所需的記憶體及CPU數量 記憶體單位是M CPU1024是代表1 vCPU 建立容器『Add container』 Container name 輸入名稱 Image 這邊看要抓取的 Image 位置及版本,我這個寫法因為沒有URL 所以會直接跟docker Hub拉 Port mappings 這個數值很重要 是外部要跟Container要對應的Port,看您包的Container是需要哪個Port就使用那個Port 點選『Create』

By Albert Yu

2021ironman 13th – DevOps – Day03 – Amazon ECS Anywhere 基礎說明與建置(上)

這系列主要就是講Amazon ECS Anywhere 所以先來看看陽春版怎麼建立出來 基礎運行元件-將外部主機註冊到AWS的必要服務 要將主機註冊到ECS上會有幾個服務一定是必須且一定要使用到的 SSM Agent 協助將主機註冊到AWS 並且可協助部屬其他所需要的Agent或其他所需的軟體 雖然他不是運行中的必要條件但是他是一個部署及更版的重要環節 如果他停止了有很大的可能會出現服務障礙 同時也可以透過SSM自動化修補OS中的漏洞及更新 Amazon ECS container Agent Amazon ECS 容器代理可讓容器執行個體連線到您的叢集 Docker Docker運行的核心軟體 基礎運行元件-支持的作業系統與聯網條件 基本上地端主機只要符合OS且可連網基本上都沒問題的 建置流程 進去AWS ECS 進入到Clustes 並點寫 Create Cluster 開始建立 選擇Networking only 並點選 Next step 這邊要注意Networking only才有支援ECS Anywhere 填寫Clustes名稱並記得

By Albert Yu

2021ironman 13th – DevOps – Day02 – 可能發生的費用、目標架構說明

可能發生的費用 1. 雲地混合的DevOps環境 * AWS CodeCommit * AWS CodePipeline * AWS CodeBuild * AWS ECS * AWS ECS Anywhere 以最小規格測試一個月費用大約$10 2. 雲地混合的EC架構 除了第一的費用之外 * AWS VPN * AWS Application Load Balancer * AWS Cloudfront AWS VPN會使用AWS的PaaS服務所以整體費用除原先DevOps費用之外會額外加上$65 費用上基本都可以在AWS的個服務上看到服務的計費方式 這邊有點比較特別的是目前 AWS ECS Anywhere 有提供六個月的三台非AWS機器註冊是免費的 所以如果要測試混合架構的話現在是個好時機 https://aws.amazon.com/tw/ecs/anywhere/pricing/ 目標架構基礎說明 雲地混合的EC架構 從『雲地混合的DevOps環境』展開單就DevOps是無法產出價值的,

By Albert Yu

2021ironman 13th – DevOps – Day01 – 前言與Lab架構說明

前言 今年不搞自虐(之前都搞跟近期專案結合度比較低的主題) 結合最近一直在研究的Amazon ECS Anywhere 並且讓他結合地端、GCP、Azure 看Amazon ECS Anywhere的混合雲能做到哪個程度並且在電商、DevOps、IOT當中能碰出什麼樣的火花 直接拿我家的LAB環境加上AWS、Azure、GCP、Linode帳號來進行實作 身為資訊人如果不能在家中把真實的情境蓋出來那就不算真的熱愛資訊產業 PS:老婆交代別再給我去參加鐵人賽~我還是來了,希望寫完之前他都不要發現。 Lab架構說明 Lab設備列表 * MikriTik 的 CCR 1009-7G-1C-1S+ 作為Gateway * HP A5120 Series switch JE074A 24Port 作為Switch * E3-1230V2 + 32G的主機兩台安裝Proxmox VE作為一堆虛擬機的載體 * Synology DS1621+ 作為SAN Server與NFS備份用 架構上儘量模擬簡化版的企業環境希望整個環境上面是可以對比實際狀況 最終目標有兩個

By Albert Yu

Ubuntu 修改主機名稱

主機名稱是方面我們判斷連線主機是否正確的一個依據如果主機名稱錯亂可能的後果就是指令下錯位置 所以給予正確的名稱是很重要的 在Ubuntu 14之後的版本都可以透過hostnamectl這個指令來修改名稱 修改指令很簡單 使用下列指令即可 hostnamectl set-hostname 主機名稱 比如我把主機名稱改成 Geafana-Server 但是改完後再介面上是不會馬上生效的需要重新連線才會生效 在生效之前我們可以用這個指令來確認是某有成功設定 hostnamectl status 確認設定完之後重新連線就可以看到新名稱拉

By Albert Yu

擴增 Ubuntu 20.04 上 root lvm volume

主機才剛裝好就發生的空間不足的狀況? APT更新就出現 E: You don't have enough free space in /var/cache/apt/archives/. ? 使用df -h指令觀察硬碟居然是滿的而且只有3.9G 察看之後發現如果是採用預設磁碟分割 再安裝的過程當中只會使用到4G的空間 安裝好開機之後需要再另外進行擴展 指令 使用 lvresize -A n -l +100%FREE 將根目錄擴展到100%的空間 lvresize -A n -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv 使用resize2fs擴展分割區 resize2fs /dev/mapper/ubuntu--vg-

By Albert Yu

MYSQL設定Root帳號密碼與初始權限(Ubuntu 20.04)

Ubuntu 安裝完Mysql的時候預設是沒有root密碼以及相關設定的 這時候就需要先用mysql_secure_installation這個指令來對本機的MySQL進行初始化設定 輸入指令 root@zabbix-server:/home/albertyu# mysql_secure_installation 是否為Root用戶設定密碼並且選擇難度 基本上都是輸入Y Securing the MySQL server deployment. Connecting to MySQL using a blank password. VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security. It checks the strength of password and allows the users

By Albert Yu

Proxmox VE 初始化硬碟分割區與配置ZFS儲存區(Raidz)

在一台新的Proxmox VE安裝好之後通常都會新增儲存區或者是現有儲存區新增硬碟 如果是全新的硬碟即可馬上使用 但是很多時候會是以使用過的硬碟 我的環境上有四顆硬碟都是利用原先其他系統的多餘硬碟整理出來的 其中/dev/sda是系統,其他三科是要作為資料碟使用 如果直接來建立ZFS會發現並沒有硬碟可以選擇,這代表著硬碟已經有分割資訊 初始化分割區 我們要把所有的分割區清除 我有三顆硬碟 /dev/sdb /dev/sdc /dev/sdd 清除指令以 fdisk 硬碟代號 來進行清除 進入後先以 p 確認硬碟分割資訊 在以 d 指令分割區進行刪除,這邊如果刪除到最後一個分割區是直接以d即可進行刪除 最後再以w指令進行儲存 重覆進行三顆硬碟的清除之後即可看見使用方式為無 這時候就可以開始進行ZFS的建立 ZFS的建立 RAIDZ 是一種軟體Raid的建立方式 她方式如同Raid 5或者是Raid 6,RAIDZ後面的數字代表最大容錯數字如 RAIDZ1一顆 RAIDZ 2兩顆 Proxmox VE在建立ZFS的作法上幾乎都是建議使用RAIDZ1 建

By Albert Yu