4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ConoHa で容量無制限のマイ魚拓サービスを作成する

Last updated at Posted at 2025-12-13

この記事は、ConoHa Advent Calendar 2025 14日目の記事です。

今回はオブジェクトストレージと ArchiveBox を使って、清楚かわいい ConoHa ちゃんを自分だけの魚拓サービスにしていきます。

デジャブ?

2019年の Advent Calendarでも、同じように ConoHa で ArchiveBox を作っています。

今回はパワーアップしたオブジェクトストレージと、新登場のスタートアップスクリプトを使いました!

なお、ArchiveBox は、いろんな方法で Web ページをまるっと保存・閲覧できるソフトです。ウェブ魚拓や Internet Archive の OSS 版だと思ってください。

目次

  1. オブジェクトストレージをつくる
    1. API ユーザーをつくる
    2. Credentialをつくる
    3. オブジェクトストレージの容量を設定する
  2. スタートアップスクリプトを使って VPS をつくる
  3. オブジェクトストレージを設定する
  4. ArchiveBox をつかってみる
  5. 後片付け
  6. あとがき

オブジェクトストレージをつくる

ConoHa のオブジェクトストレージは Swift ベースだったので、正直避けてました。

が、8 月のアップデートで S3 互換の API に対応したので、この機会に使っていこうと思います。

API ユーザーをつくる

コントロールパネルの「オブジェクトストレージ」を開いて、早速バケットを作r...

APIユーザーを作成することでご利用いただけます。

alt

オブジェクトストレージを作るには、API ユーザーが必要なんで作ります。

「API」のページからパスワードを入れて「保存」

alt

API ユーザーを作ったら、あとで使うので「ユーザーID」と「パスワード」はメモっておきます。

alt

あと、「API」のページの上の方にある項目から、「テナントID」と「S3 Service」の値ものちほど使うので、忘れずメモしておきましょう。

alt

Credentialをつくる

オブジェクトストレージにつなぐときに使う認証情報(Credential)を作ります。
(さっき作った API ユーザーとは別に作る必要があります)

コントロールパネルにそれっぽいのがないので、調べてみたところ API を直接たたく必要があるみたいです。

Credential作成|ConoHaドキュメントサイト

API をたたくにはトークンがいるので、まずはトークンをゲットします。
トークンはレスポンスヘッダx-subject-tokenに入っています。
前半の変数はさっきメモした値を入れてください。

トークン取得
TENANT_ID=<テナントID>
API_USERID=<ユーザーID>
API_PASSWORD=<パスワード>

curl -i -X POST \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d "{\"auth\": {\"identity\": {\"methods\": [\"password\"],\"password\": {\"user\": {\"id\": \"$API_USERID\",\"password\": \"$API_PASSWORD\"}}},\"scope\": {\"project\": {\"id\": \"${TENANT_ID}\"}}}}" \
  "https://identity.c3j1.conoha.io/v3/auth/tokens"

---

HTTP/1.1 201 Created
server: nginx
date: Wed, 15 Nov 2023 10:06:01 GMT
content-type: application/json
content-length: 2709
x-subject-token: <<!!ココ!!>>

取ったトークンを変数に入れて、Credential をつくります。
レスポンスに含まれる「access」と「secret」がCredentialになります。

Credential取得
TOKEN=<トークン>

curl -X POST \
  -H "Accept: application/json" \
  -H "X-Auth-Token: $TOKEN" \
  -d "{\"tenant_id\": \"$TENANT_ID\"}" \
  "https://identity.c3j1.conoha.io/v3/users/$API_USERID/credentials/OS-EC2"

---

{
    "credential": {
        "user_id": "APIユーザーID",
        "tenant_id": "テナントID",
        "access": "アクセスキー",
        "secret": "シークレットキー",
        "trust_id": null,
        "links": {
            "self": "string"
        }
    }
}

オブジェクトストレージの容量を設定する

ConoHa のオブジェクトストレージは、あらかじめ使用容量を決めておくスタイルです。
某クラウドのように勝手に拡張されて、お支払いが青天井……なんてことにはなりません。ヨシ!

容量は「オブジェクトストレージ」ページのアイコンから選びます。

alt

容量は 100 GB 単位なので、今回は最小の 100 GB を選びます。
容量はいつでも変えられます。なお、使わない場合は 0 GB に戻さないとお金がかかっちゃうので注意。

alt

0GB/0GB0GB/100GBになっていれば OK です。

alt

スタートアップスクリプトを使って VPS をつくる

サーバーになる VPS を立てていきます。

ArchiveBox のスタートアップスクリプトUbuntu 24.04対応なので、Ubuntu 24.04を選んで、プランを決めます。

(512MBが選べないのは Ubuntu のシステム要件が RAM 1GBだから?)

alt

root パスワードなんかはよしなに入力して、「スタートアップスクリプト」から「ArchiveBox」を選びます。

alt

ネームタグは画面のトップに出ちゃうので、よく考えて入力しましょう。間違っても NG ワードを入れてはいけません。
(英語なのでセーフ。知らんけど)

alt

オブジェクトストレージを設定する

オブジェクトストレージを VPS にマウントします。

マウントする前に、ちゃんと動くか確かめるついでに ArchiveBox を立ち上げます。

ドキュメントによると起動完了後、以下のURLが表示されます:とのことですが、なんか失敗しちゃいました。

#  /root/archivebox-manage.sh start
Check: docker compose logs

ログをチェック

# docker compose logs
no configuration file provided: not found

VPS の IP にアクセス。
なんだか知らんが動いているのでヨシ!

alt

動作チェックが終わったので、オブジェクトストレージをマウントします。
今回はrcloneというツールを使います。

ArchiveBoxのドキュメントを参考に設定していきます。

インストール

apt install rclone fuse
echo 'user_allow_other' >> /etc/fuse.conf

設定ファイルを作る

mkdir -p ~/.config/rclone/
touch ~/.config/rclone/rclone.conf

設定ファイルの中身は次のように指定してください。

[archivebox-s3]
type = s3
provider = Other
access_key_id = <Credential の access>
secret_access_key = <Credential の secret>
region = conoha
endpoint = <S3 Service の URL>

次のコマンドで動作を確かめます。何も表示されなければ OK です。

rclone ls archivebox-s3:

特に問題なければ ArchiveBox の保存先をマウントします。
cloudremixの部分は好きな値に変えてください。バケット名になります。)

rclone mount \
  --allow-other \
  --uid 911 --gid 911 \
  --vfs-cache-mode=full \
  --transfers=16 --checkers=4 \
  --daemon \
  archivebox-s3:cloudremix/data/archive /opt/archivebox/data/archive

ArchiveBox を再起動します。
(再起動しないと保存したファイルがオブジェクトストレージにアップされません)

/root/archivebox-manage.sh restart

ArchiveBox をつかってみる

マウントも終わったので ArchiveBox を使っていきます。
まずは Web UI に入るためのアカウントを作ります。

# インストールディレクトリに移動
cd /opt/archivebox

# ユーザー作成
docker compose run archivebox manage createsuperuser
...
[i] [2025-12-12 08:05:55] ArchiveBox v0.7.3: archivebox manage createsuperuser
    > /data

Username (leave blank to use 'archivebox'): <ユーザー名>
Email address: <メールアドレス>
Password: <パスワード>
Password (again): <パスワードもう一回>
Superuser created successfully.

ブラウザを開いてhttps://<サーバーのIP>/admin/login/にアクセス。
さっき設定したユーザー名とパスワードでログインします。

alt

右上の「Add」をポチッとな。

alt

保存したい URL を入力して「Add URLs and archive ?」を押します。
複数も OK ですし、その下のArchive depth:を変えると、リンク先もまるっと保存してくれます。

alt

保存キューに登録されました。

alt

しばらく待つと保存処理が終わってタイトルなんかが正しく表示されます。
(自動で更新はしてくれないので、自分でリロードが必要です)

alt

タイトルを押すと保存されたページが表示されます。
あんずちゃんかわいい!

URL にアクセスすれば誰でも表示できます。
著作権とかには十分気をつけて、セキュリティグループなどでアクセス制御してください

alt

クラウドストレージにもキチンと保存されています。

# rclone ls archivebox-s3:
      565 cloudremix/data/archive/1765527192.947603/favicon.ico
    14636 cloudremix/data/archive/1765527192.947603/htmltotext.txt
   241146 cloudremix/data/archive/1765527192.947603/index.html
    35679 cloudremix/data/archive/1765527192.947603/index.json
    64086 cloudremix/data/archive/1765527192.947603/output.html
  2530553 cloudremix/data/archive/1765527192.947603/output.pdf
      186 cloudremix/data/archive/1765527192.947603/readability/article.json
    19996 cloudremix/data/archive/1765527192.947603/readability/content.html
     9633 cloudremix/data/archive/1765527192.947603/readability/content.txt
  1146948 cloudremix/data/archive/1765527192.947603/screenshot.png
  4051566 cloudremix/data/archive/1765527192.947603/singlefile.html
     2114 cloudremix/data/archive/1765527192.947603/warc/1765527213.warc.gz

後片付け

いらなくなったら VPS は削除しちゃいましょう。

alt

オブジェクトストレージは空にしないと容量変更ができないので、空にしてからコントロールパネルで変更します。
rcloneだとpurgeで空っぽにできます。

rclone purge  conoha-s3:cloudremix

あとがき

今年はパワーアップしたオブジェクトストレージとArchiveBoxでも書こうかな~

alt

あっ

うおぉぉぉ!

ということでこのネタになりました。

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?