👋

Amazon EC2にArchivematicaを立てる

2023/02/08に公開

概要

Archivematicaはデジタルデータの長期保存のためのオープンソースソフトウェアです。

https://www.archivematica.org/en/

このArchivematicaをAmazon EC2に立てる機会がありましたので、その備忘録です。

インストール

以下のページにインストール方法が記載されています。

https://www.archivematica.org/en/docs/archivematica-1.13/admin-manual/installation-setup/installation/installation/

いくつかの選択肢がありますが、今回は以下の「CentOS 7 64-bit、Installing Archivematica on CentOS/Red Hat」を試してみます。

https://www.archivematica.org/en/docs/archivematica-1.13/admin-manual/installation-setup/installation/install-centos/#install-pkg-centos

EC2のインスタンス

CentOS 7と指定されていましたので、以下のAmazon マシンイメージ(AMI)を選択しました。

以下にハードウェアの要件が記載されていますが、「Recommended minimum production requirements」であるメモリ4GBである「t2.medium」、200GBのストレージを選択しました。

https://www.archivematica.org/en/docs/archivematica-1.13/admin-manual/installation-setup/installation/installation/#hardware

インストール

EC2の起動後は、上記のサイトに記載されていたコマンドをすべて実行します。以下をコピー&ペーストすることがでインストールできます。

sudo yum -y update

# Allow Nginx to use ports 81 and 8001
sudo semanage port -m -t http_port_t -p tcp 81
sudo semanage port -a -t http_port_t -p tcp 8001
# Allow Nginx to connect the MySQL server and Gunicorn backends
sudo setsebool -P httpd_can_network_connect_db=1
sudo setsebool -P httpd_can_network_connect=1
# Allow Nginx to change system limits
sudo setsebool -P httpd_setrlimit 1

sudo yum install -y epel-release

sudo -u root rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo -u root bash -c 'cat << EOF > /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF'

sudo -u root bash -c 'cat << EOF > /etc/yum.repos.d/archivematica.repo
[archivematica]
name=archivematica
baseurl=https://packages.archivematica.org/1.13.x/centos
gpgcheck=1
gpgkey=https://packages.archivematica.org/1.13.x/key.asc
enabled=1
EOF'

sudo -u root bash -c 'cat << EOF > /etc/yum.repos.d/archivematica-extras.repo
[archivematica-extras]
name=archivematica-extras
baseurl=https://packages.archivematica.org/1.13.x/centos-extras
gpgcheck=1
gpgkey=https://packages.archivematica.org/1.13.x/key.asc
enabled=1
EOF'

sudo -u root yum install -y java-1.8.0-openjdk-headless elasticsearch mariadb-server gearmand
sudo -u root systemctl enable elasticsearch
sudo -u root systemctl start elasticsearch
sudo -u root systemctl enable mariadb
sudo -u root systemctl start mariadb
sudo -u root systemctl enable gearmand
sudo -u root systemctl start gearmand

sudo -H -u root mysql -hlocalhost -uroot -e "DROP DATABASE IF EXISTS MCP; CREATE DATABASE MCP CHARACTER SET utf8 COLLATE utf8_unicode_ci;"
sudo -H -u root mysql -hlocalhost -uroot -e "DROP DATABASE IF EXISTS SS; CREATE DATABASE SS CHARACTER SET utf8 COLLATE utf8_unicode_ci;"
sudo -H -u root mysql -hlocalhost -uroot -e "CREATE USER 'archivematica'@'localhost' IDENTIFIED BY 'demo';"
sudo -H -u root mysql -hlocalhost -uroot -e "GRANT ALL ON MCP.* TO 'archivematica'@'localhost';"
sudo -H -u root mysql -hlocalhost -uroot -e "GRANT ALL ON SS.* TO 'archivematica'@'localhost';"

sudo -u root yum install -y python-pip archivematica-storage-service

sudo -u archivematica bash -c " \
set -a -e -x
source /etc/sysconfig/archivematica-storage-service
cd /usr/lib/archivematica/storage-service
/usr/share/archivematica/virtualenvs/archivematica-storage-service/bin/python manage.py migrate";

sudo -u root systemctl enable archivematica-storage-service
sudo -u root systemctl start archivematica-storage-service
sudo -u root systemctl enable nginx
sudo -u root systemctl start nginx
sudo -u root systemctl enable rngd
sudo -u root systemctl start rngd

sudo -u root yum install -y archivematica-common archivematica-mcp-server archivematica-dashboard

sudo -u archivematica bash -c " \
set -a -e -x
source /etc/sysconfig/archivematica-dashboard
cd /usr/share/archivematica/dashboard
/usr/share/archivematica/virtualenvs/archivematica/bin/python manage.py migrate
";

sudo -u root systemctl enable archivematica-mcp-server
sudo -u root systemctl start archivematica-mcp-server
sudo -u root systemctl enable archivematica-dashboard
sudo -u root systemctl start archivematica-dashboard

sudo -u root systemctl restart nginx

sudo -u root yum install -y archivematica-mcp-client

sudo -u root sed -i 's/^#TCPSocket/TCPSocket/g' /etc/clamd.d/scan.conf
sudo -u root sed -i 's/^Example//g' /etc/clamd.d/scan.conf

sudo -u root systemctl enable archivematica-mcp-client
sudo -u root systemctl start archivematica-mcp-client
sudo -u root systemctl enable fits-nailgun
sudo -u root systemctl start fits-nailgun
sudo -u root systemctl enable clamd@scan
sudo -u root systemctl start clamd@scan
sudo -u root systemctl restart archivematica-dashboard
sudo -u root systemctl restart archivematica-mcp-server

sudo -u archivematica bash -c " \
    set -a -e -x
    source /etc/default/archivematica-storage-service || \
        source /etc/sysconfig/archivematica-storage-service \
            || (echo 'Environment file not found'; exit 1)
    cd /usr/lib/archivematica/storage-service
    /usr/share/archivematica/virtualenvs/archivematica-storage-service/bin/python manage.py createsuperuser
  ";

最後のコマンドで、archivematica-storage-serviceのユーザを作成します。ユーザ名やパスワードを指定します。

その後、以下の「Post-install configuration」を参考に、初期セットアップを行います。

https://www.archivematica.org/en/docs/archivematica-1.13/admin-manual/installation-setup/installation/install-centos/#post-install-configuration

EC2のセキュリティ設定

Archivematicaは81番ポートと8001番ポートを使用するので、インバウンドルールでこれらのポートへのアクセスを許可しました。

結果、以下のようにArchivematicaをセットアップすることができました。

まとめ

Amazon EC2にArchivematicaを立てることができました。今後、Archivematicaへの理解を深めていきたいと思います。

なお、Archivematicaの使い方については、「入澤道場」でも詳細にまとめられていますので、こちらも参考にしてください。

http://irisawadojo.blogspot.com/

Discussion