将Merging Maps CE(社区版)部署到EC2上
合并地图

Merging Maps 是一个由 Lutra Consulting Limited 开发的地理空间数据收集和共享平台。
地理空間数据的高效收集可以通过系统应用程序,例如”Qfield”或”ArcGIS Field Maps”来实现。但是,Mergin Maps具有以下特点:
-
- QGISとの統合
Mergin MapsはQGISの機能をモバイルデバイス向けに拡張し、利用者が簡単に調査プロジェクトを作成し、最新の情報をすべてのチームメンバーと共有できます。
QGISのMergin Mapsプラグインは、QGIS内でMergin Mapsプロジェクトを直接操作することを可能にします。PCへのプロジェクトのダウンロード、プロジェクトの変更、およびクラウドへの同期を行えます。
データ収集
モバイルデバイスを使って地理空間データを簡単に記録でき、紙のフィールドノートからの手書き転写、写真の整理などの手間を省くことができます。モバイルデバイスでは専用のアプリを使用します。
Mergin Mapsは、Mergin Maps cloudを使用することで、データを複数端末間でシームレスに同期します。Mergin Maps cloudは、SaaSとして利用することもできますが、利用者が用意したサーバ(例えば、AWS EC2)にMergin Maps cloudを構築し、利用することもできます。
作为SaaS的Mergin地图
如果将Mergin Maps作为SaaS使用,您可以选择以下计划。请查看网站以了解费用和可用服务内容。
-
- Individual
-
- Professional
- Team
私人托管
SaaSとしてMergins Mapsを利用する場合、データ容量などに制限がつきますが、自分でサーバを用意することで、無制限にデータを保存することが可能になります。
Private Hostingには以下2つのプランがあり、利用できるサービスに違いがあります。詳しくはHPを確認してください。
-
- Mergin Maps CE (Community Edition)(無料)
- Mergin Maps EE (Enterprise Edition)(有料)
今回はAWSのEC2にMergin Maps CEを構築してみます。
将Mergin Maps CE部署到EC2的步骤

作为系统配置,将按照上图所示进行。
在前提条件下,我们将对以下工作进行解释。
-
- ACMでSSL証明書を発行する。
-
- EC2インスタンスを起動する。
-
- ELBを生成し、
セキュリティグループをHTTPS:443およびHTTP:80ポートへの接続を許可する。
ターゲットグループに起動したEC2インスタンスを配置する。
ACMで発行したSSL証明書を設定する。
EC2インスタンスのセキュリティグループに、上記ELBから8080ポートへの接続を許可する(使用端末からのSSH接続も合わせて許可する)。
Route53パブリックホストゾーンを作成する。
Route53でELBのドメイン名を指すAレコード(エイリアス)を作成する。
一旦完成上述准备工作后,首先需要使用SSH客户端连接EC2实例。
安装EC2所需的软件
我会更新EC2内的软件包。
$ sudo yum update -y
安装Docker
首先需要安装Docker。
$ sudo install -y docker
如果已经安装了Docker,就启动Docker。
$ sudo systemctl start docker
确认Docker是否正在运行。如果显示为”active(running)”,则表示它已成功启动。
$ systemctl status docker
启用Docker的自动启动。
启用Docker的自动启动。
这样,即使重新启动EC2,Docker也会自动启动。
$ sudo systemctl enable docker
将 ec2-user 添加到 docker 组中。
安装Docker时,会自动在操作系统中创建docker组。
然后将ec2-user添加到该docker组。
这样,ec2-user就能够无需sudo权限执行docker命令。
$ sudo usermod -a -G docker ec2-user
首先,从EC2中使用exit命令登出,然后再次通过SSH使用ec2-user连接到EC2。
从那之后的连接中,ec2-user将被赋予docker用户组的访问权限。
安装Docker Compose(docker-compose)。
首先,在/usr/local/lib/下创建一个目录/usr/local/lib/docker/cli-plugins/。然后,将Docker Compose的二进制文件放置在这个目录中。
$ sudo mkdir -p /usr/local/lib/docker/cli-plugins
请将 Docker Compose 版本分配给变量 VER。请将版本号更改为最新稳定版(请在 Docker 官方文档的官方网站上确认最新稳定版的版本号)。
$ VER=2.4.1
将GitHub上的Docker Compose二进制文件下载到上述路径下的/usr/local/lib/docker/cli-plugins/。
$ sudo curl \
-L https://github.com/docker/compose/releases/download/v${VER}/docker-compose-$(uname -s)-$(uname -m) \
-o /usr/local/lib/docker/cli-plugins/docker-compose
给已经下载的docker-compose(二进制文件)添加执行权限。
$ sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
接下来要设置符号链接。
$ sudo ln -s /usr/local/lib/docker/cli-plugins/docker-compose /usr/bin/docker-compose
请确认可以使用docker-compose命令。
如果显示Docker Compose版本v2.4.1,则代表Docker Compose已成功安装。
$ docker-compose --version
Docker Compose version v2.4.1
安装Git
最后要安装Git。
$ sudo install -y git
合并地图的部署
使用Git进行克隆
克隆Mergin Maps的存储库。
$ git clone https://github.com/MerginMaps/mergin.git
启动Docker容器
执行以下命令,启动Docker容器。
确保有5个容器启动。
$ cd mergin
$ mkdir -p projects
$ sudo chown -R 901:999 ./projects/
$ sudo chmod g+s ./projects/
$ docker-compose -f docker-compose.yml up
[+] Running 5/5
⠿ Container merginmaps-proxy Started 2.0s
⠿ Container merginmaps-db Started 2.0s
⠿ Container merginmaps-redis Started 2.0s
⠿ Container merginmaps-server Started 10.8s
⠿ Container merginmaps-web Started 0.8s
....
如果第一次启动服务器,则需要初始化数据库并创建超级用户。设置管理员的用户名、密码和电子邮件。
$ docker exec merginmaps-server flask init-db
$ docker exec merginmaps-server flask user create <username> <password> --is-admin --email <email>
确认应用程序
使用在Route53中创建的记录名,尝试进行HTTPS连接至ELB。
成功连接后,将显示以下画面。

输入您注册的“管理员用户名”和“密码”,然后登录。登录后,将跳转到仪表盘界面。

使用QGIS创建项目并将其同步到Mergin Maps。


通过勾选”Custom Mergin Server”选项,您可以将自己搭建的Mergin Maps的服务器与QGIS进行协作。
在使用网络浏览器访问时,您需要输入与用户名、密码和自定义合并服务器相对应的信息。
当您输入“OK”并右键单击浏览器面板上的”Mergin Maps”时,您可以确认可选择的选项已增加。









在Mergin Maps移动应用程序上操作项目。
在移动设备上(无论是iOS还是Android)下载Mergin Maps应用程序。




结束
我已经在AWS的EC2上成功构建了Mergin Maps的云环境。我还确认了可以从QGIS和移动应用程序“Mergin Maps”访问和同步以上云数据。
如果您有一个可用的服务器,Mergin Maps CE可以免费使用。如果您想先试试的话,建议您试一下。
我认为那些喜欢Mergin Maps的“地理空间数据收集和共享”功能的公司,可以选择订购付费版的Mergin Maps EE,该版本附带了安全更新等额外功能,并提供资金支持以维持Mergin Maps的生态系统。
请提供以下的引用或参考。
-
- 【AWS】EC2にDockerとDocker Composeをインストール
-
- httpで公開したWebサーバーをhttps通信できるようにする
-
- パブリックALB(HTTPS) → プライベートEC2構築
- Mergin Maps Community Edition