[ Broker ] 使用 Docker 在 AWS EC2 建立 Kafka

學習目標

  • 在 AWS EC2 建立 Kafka Broker

前置準備作業

  1. 一台能上網的電腦

  2. 已擁有 AWS 帳號且能正常使用 AWS 的服務


啟動 AWS EC2 Ubuntu Server

Step 1. 開啟 AWS Portal

❖ 透過覽瀏器開啟下方網址
  https://aws.amazon.com/tw/


Step 2. 選取 AWS EC2 服務

❖ 點選 【 Services 】中的 【 EC2 】


Step 3. 進入 Instance 設定頁面

❖ 點選 【 Launch Instance 】


Step 4. 選擇作業系統種類

❖ 點選 【 Ubuntu Server 16.04 LTS (HVM), SSD Volume Type - ami-0f9cf087c1f27d9b1 (64-bit x86) / ami-036ede09922dadc9b (64-bit Arm) 】中的【 Select 】按鈕


Step 5. 選擇 Instance 規格

❖ 選擇【 t2.small 】規格
  ㊟ 規格可自行決定,本範例使用【 t2.small 】規格示範
  ㊟ 記憶體至少 2G 以上


Step 6. 設定埠 (Port) 號

❖ 選擇【 6. Configure Security Group 】連結

❖ 點選【 Add Rule 】按鈕

❖ ① 在【 Port Range 】欄位輸入【 2181 】
     在【 Source 】欄位輸入【 0.0.0.0/0 】
  ② 在【 Port Range 】欄位輸入【 9092 】
     在【 Source 】欄位輸入【 0.0.0.0/0 】
  ③ 在【 Port Range 】欄位輸入【 29092 】
     在【 Source 】欄位輸入【 0.0.0.0/0 】
  ㊟【 Source 】欄位可依需求調整,本範例使用【 0.0.0.0/0 】

❖ 點選【 Review and Launch 】按鈕


Step 7. 啟動 Instance

❖ 點選【 Launch 】按鈕


Step 8. 設定 key

❖ 依需求建立 key

❖ 點選確認選項

❖ 點選【 Launch Instances 】按鈕


Step 9. Ubuntu Server 建立結果

❖ 點選【 View Instances 】按鈕

❖ 【 Ubuntu Server 】相關資訊


Step 10. 取得 Ubuntu Server 登入資訊

❖ 點選【 Connect 】按鈕

❖ 登入資訊
  ㊟ 之後登入到 Ubuntu Server 會使用到此資訊


Step 11. 取得傳送檔案到 Ubuntu Server 的資訊

❖ 點選【 Connect 】按鈕

❖ 傳送檔案資訊
  ㊟ 之後傳送檔案到 Ubuntu Server 會使用到此資訊


Step 12. 登入到 AWS EC2


Step 13. 安裝 Docker

於終端機 【 macOS 】或 Putty 【 Windows 】中輸入下方指令

sudo apt-get update  
sudo apt-get install -y docker.io  

Step 14. 安裝 Docker Compose

於終端機 【 macOS 】或 Putty 【 Windows 】中輸入下方指令

①
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

②
sudo chmod +x /usr/local/bin/docker-compose

③
docker-compose --version  

Step 15. 下載 Docker Compose yml 檔

於終端機 【 macOS 】或 Putty 【 Windows 】中輸入下方指令

wget https://raw.githubusercontent.com/ArcherHuang/Kafka/master/Docker/docker-compose-kafka-zookeeper.yml  

Step 16. 啟動 Zookeeper 與 Kafka

於終端機 【 macOS 】或 Putty 【 Windows 】中輸入下方指令

sudo docker-compose -f docker-compose-kafka-zookeeper.yml up -d  


Step 17. 取得 Container Name

於終端機 【 macOS 】或 Putty 【 Windows 】中輸入下方指令

sudo docker ps -a  


Step 18. 進到 Container 中

於終端機 【 macOS 】或 Putty 【 Windows 】中輸入下方指令

sudo docker exec -it Container-Name bash

㊟ 請修改【 Container-Name 】為步驟 17 取得的名字


Step 19. 建立 Topic

於終端機 【 macOS 】或 Putty 【 Windows 】中輸入下方指令

kafka-topics --create --zookeeper zookeeper:2181 \
--replication-factor 1 --partitions 1 \
--topic test


Step 20. Publish Topic

於終端機 【 macOS 】或 Putty 【 Windows 】中輸入下方指令

kafka-console-producer --broker-list kafka:9092 --topic test

再輸入測試文字如 hello world


Step 21. Consume Topic

① 離開 Publish 模式
   按 Ctrl+c
② 於終端機 【 macOS 】或 Putty 【 Windows 】中輸入下方指令

kafka-console-consumer \
--bootstrap-server kafka:9092 \
--from-beginning \
--topic test


Step 22. 其他指令

  • 列出 Topic
    • kafka-topics --list --zookeeper zookeeper:2181
  • 查看 Topic 描述
    • kafka-topics --describe --zookeeper zookeeper:2181 --topic test
  • 刪除 Topic
    • kafka-topics --delete --zookeeper zookeeper:2181 --topic test

GitHub
List of blogs
ALL RIGHTS RESERVED. COPYRIGHT © 2018. Designed and Coded by Makee.io