[AWS] A1インスタンスに ARM版 MongoDBをインストールしてみる #reinvent

こんにちは、菊池です。

re:Invent 2018で、ARMベースのCPU「AWS Graviton Processors」を搭載した新しいEC2インスタンス、A1インスタンスが登場しました。

[速報]ARMベースのプロセッサ”AWS Graviton Processors”を搭載したA1インスタンスがリリースされました! #reinvent

で、みんな大好き(?)MongoDBでも以前よりARMプラットフォームでのサポートがされているってことで、試してみました。

MongoDB の ARMサポート

MongoDBでは、バージョン3.4以降でARM64プラットフォームをサポートしています。OSはUbuntu 16.04 LTSだけですが、こちらもEC2でサポートされるので動作させることが可能です。

やってみた

A1インスタンスの起動

まずはEC2の起動から。AMIは以下を選択しました。

  • Ubuntu Server 16.04 LTS (HVM), SSD Volume Type - ami-036ede09922dadc9b (64 ビット Arm)

インスタンスタイプはa1.largeを選びます。

起動しました!

MongoDBのインストールと起動

それではMongoDBをインストールしていきます。公式ドキュメントの手順にしたがっていきましょう。プラットフォームによる差異は無いようです。

まずは/etc/apt/sources.list.d/mongodb-org-4.0.listファイルを作成します。

ubuntu@ip-172-31-0-103:~$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse

続いて、各種パッケージをアップデートしておきます。

ubuntu@ip-172-31-0-103:~$ sudo apt-get update

そしたらmongodb-orgのインストールです。--allow-unauthenticatedをつけないとエラーが出てインストールできませんでした。

ubuntu@ip-172-31-0-103:~$ sudo apt-get install -y mongodb-org --allow-unauthenticated

インストールできたら、mongodを起動。

ubuntu@ip-172-31-0-103:~$ sudo service mongod start

接続できました!

ubuntu@ip-172-31-0-103:~$ mongo localhost
MongoDB shell version v4.0.4
connecting to: mongodb://127.0.0.1:27017/localhost
Implicit session: session { "id" : UUID("2c2b5649-cba9-4364-9254-7c6589555953") }
MongoDB server version: 4.0.4
   :
>

ストレージエンジンなども、AMD64版と変わりはないようでした。

> db.serverStatus().storageEngine
{
	"name" : "wiredTiger",
	"supportsCommittedReads" : true,
	"supportsSnapshotReadConcern" : true,
	"readOnly" : false,
	"persistent" : true
}

さいごに

新しいARM64ベースのインスタンス、A1インスタンスにMongoDBを導入してみました。MongoDBではCPU性能を求めるシーンは少ないかと思いますので、安価に利用できるインスタンスとして選択肢に入れていいかと思います。