🦁

[2024年版] AWSサーバーレスアプリケーションによるIIIF Image Serverの構築

2024/09/09に公開

概要

AWSサーバーレスアプリケーションによるIIIF Image Serverの構築に関する2024年度版の記事です。

背景

以下で、serverless-iiifというリポジトリが公開されています。本リポジトリを用いることにより、AWSのサービスを用いて、コスト効率が高く、無限にスケーラブルなIIIF Image Serverを構築することができると謳われています。

https://github.com/samvera/serverless-iiif

以下で、2022年時点の使い方を紹介しましたが、今日のサービスはより使いやすいものになっていました。

https://zenn.dev/nakamura196/articles/72e49979edf582

方法

いくつか構築方法がありますが、GUIを通じた構築方法として、以下を参考にします。基本的な構築については、以下のサイトの通り行います。ここでは、CloudFrontとRoute 53によるカスタムドメインの設定を含む手順について紹介します。

Lambdaの作成

https://samvera.github.io/serverless-iiif/docs/quick-start/deployment-sam

まず、以下にアクセスします。

https://console.aws.amazon.com/lambda/home#/create/app?applicationId=arn:aws:serverlessrepo:us-east-1:625046682746:applications/serverless-iiif

カスタムドメインによる配信にあたり、いくつかの設定を行います。

まず、ForceHostの項目に、設定したいカスタムドメイン名を入力します。

さらに、SourceBucketにバケット名を入力します。以下の例ではたまたまカスタムドメインと同じ名前の例ですが、任意のバケット名を入力します。

最後に、「このアプリがカスタム IAM ロールを作成することを承認します。」にチェックを入れて、「デプロイ」ボタンを押します。

その後に遷移する以下のような画面において、「デプロイ」タブを選択して、「CloudFormation スタック」のリンクをクリックします。

「出力」タブに遷移すると、v2やv3のエンドポイントが確認できます。

tiled TIFFsの作成

以下のページなどを参考に、tiled TIFFsファイルを作成します。

https://samvera.github.io/serverless-iiif/docs/source-images

または、「『石見国絵図』,写,〔江戸中期〕. 国立国会図書館デジタルコレクション 」の画像をtile TIFFsに変換したファイルを以下から取得いただけます。サンプルデータとしてお使いください。

https://github.com/nakamura196/iiif-sampledata/raw/main/1286204.tif

このファイルを先に指定したAmazon S3のバケットにアップロードすると、以下のようなURLでImage APIにアクセスすることができます。

https://istxbnjtm5x7qcpkwapsznyltm0sufnb.lambda-url.us-east-1.on.aws/iiif/3/1286204/info.json

注意点として、上記の結果得られるJSONファイルのidには、https://iiif.aws.ldas.jp/iiif/3/1286204という値が指定されています。

これは、先の設定で、ForceHostに指定した値が反映されています。

なお、画像の閲覧には、神崎正英氏が作成されているImage Annotatorが便利です。以下のように、uパラメータでURLを指定すると、画像を表示することができます。

https://www.kanzaki.com/works/2016/pub/image-annotator?u=https://istxbnjtm5x7qcpkwapsznyltm0sufnb.lambda-url.us-east-1.on.aws/iiif/3/1286204/info.json

カスタムドメインの設定

最後にカスタムドメインの設定を行います。

まず、CloudFrontでディストリビューションを作成します。Origin domainには、先ほどアクセスしたURLのon.awsで終わるところまでを入力します。

そして、「代替ドメイン名 (CNAME)」の箇所において、設定したいドメイン名を入力します。合わせて、「Custom SSL certificate」も設定します。

上記でCloudFrontの設定は完了です。

最後に、Route 53でCloudFrontディストリビューションへの設定を行います。

結果、以下のURLからJSONファイルを取得することができます。

https://iiif.aws.ldas.jp/iiif/3/1286204/info.json

まとめ

誤っている点もあるかもしれませんが、AWSサーバーレスアプリケーションによるIIIF Image Serverの構築にあたり、参考になりましたら幸いです。

Discussion