# AWS Kafka Docker 建立 ###### tags: `NTUST` `IGS` `AWS` `Kafka` 機房選擇:Tokyo ![](https://i.imgur.com/tdZglFz.png) # 外部 Ping 連線 ![](https://i.imgur.com/JCrz4SP.png) # 1. 創建 EC2 Instance 服務主機 選擇 **Launch a virtual machine With EC2** ![](https://i.imgur.com/g536Sud.png) 選擇 Instance 所需規格, 建議為 Large , 點選 Next ![](https://i.imgur.com/rWfBBOS.png) 詳細規格說明, 選擇後點選 Next ![](https://i.imgur.com/XWCRM1T.png) 點選 6.Configure 分頁, 設立開放 Port, 點選 Add Rule ![](https://i.imgur.com/YWwAyBd.png) 設立 2181 (Zookeeper), 9092(Kafka) 端口, 點選 Preview ![](https://i.imgur.com/1J5zafs.png) 確認後 Lauch 執行 ![](https://i.imgur.com/qBh8aAk.png) --- 產生金鑰, 未來須透過此檔案進行 SSH 連線 ![](https://i.imgur.com/7GDeFxR.png) 完成畫面, 進入檢視 Instance ![](https://i.imgur.com/JhbeRca.png) 確認被分配的 IP 位置 ![](https://i.imgur.com/hiIMQy0.png) 測試 ping **'Public ipV4 address'** ![](https://i.imgur.com/lP06sOf.png) 進入產生 PEM 金鑰匙檔案資料夾 ![](https://i.imgur.com/o0LPAVG.png) 修改權限 chmod 400 金鑰檔 ![](https://i.imgur.com/Mcl71Ie.png) 點選 Connect 取得連線資訊 ![](https://i.imgur.com/5zoNmmP.png) 取得 ssh 連線相關指令 ![](https://i.imgur.com/VTKG0Jx.png) 進入AWS - EC2 Instance 當中 ![](https://i.imgur.com/AekPwqI.png) # 2. 安裝 Docker Ubuntu 套件管理 apt 更新 ``` bash= sudo apt-get update #更新 Apt ``` ![](https://i.imgur.com/GOdYRS6.png) 安裝 Docker ``` bash= sudo apt-get install -y docker.io #安裝 Docker ``` ![](https://i.imgur.com/rjE5CHJ.png) 參考 Kafka Docker 安裝教學文件 ``` bash= sudo docker pull wurstmeister/kafka:2.12-2.4.1 sudo docker pull wurstmeister/zookeeper ``` ![](https://i.imgur.com/q0vehdB.png) ![](https://i.imgur.com/GTzvpCK.png) 建立 Container 外部網路連線 ``` bash= sudo docker network create --subnet=172.18.0.0/16 mynetwork ``` ![](https://i.imgur.com/i6QoeVT.png) 啟動 Zookeeper ``` bash= sudo docker run -d --name zookeeper --network mynetwork --ip 172.18.0.2 -p 2181:2181 wurstmeister/zookeeper ``` ![](https://i.imgur.com/mlQXiux.png) 啟動單節點 Kafka 並設置 Listeners ** 注意, 需要將對外公開 ip 設置於 KAFKA_ADVERTISED_LISTENERS 當中 ``` bash= sudo docker run --name kafka1 --network mynetwork --ip 172.18.0.3 -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=172.18.0.2:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://'Public ipV4 address':9092 -e KAFKA_LISTENERS=PLAINTEXT://172.18.0.3:9092 -dit wurstmeister/kafka:2.12-2.4.1 ``` ![](https://i.imgur.com/KS4LOtN.png) # 3. GameServer 傳入資料 於GameServer 發送 Kafka 資料 ![](https://i.imgur.com/tqQ5XJF.png) 進入 Kafka 主機 ![](https://i.imgur.com/NlqiIFJ.png) 透過 kafka-console-consumer.sh 查看資料 ``` bash= $KAFKA_HOME/bin/kafka-console-consumer.sh --bootstrap-server 'Public ipV4 address':9092 --topic gameSrcTpc --from-beginning ``` 顯示 gameSrcTpc 相關資料 ![](https://i.imgur.com/s53At54.png)