CloudFront + App Runner で 404 エラーが発生する問題の調査記録

はじめに AWS App Runner で Cantaloupe(IIIF画像サーバー)をホストし、その前段に CloudFront を配置しようとしたところ、CloudFront 経由でアクセスすると全てのリクエストが 404 エラーになる問題に遭遇しました。 本記事では、問題の原因調査から試した解決策、そして結論までを記録します。 環境 アプリケーション : Cantaloupe 5.0.5(IIIF画像サーバー) ホスティング : AWS App Runner CDN : Amazon CloudFront リージョン : ap-northeast-1(東京) 問題の概要 症状 アクセス方法 結果 App Runner に直接アクセス 200 OK CloudFront 経由でアクセス 404 Not Found 確認したこと CloudFront 経由で 404 が返る際、レスポンスヘッダーに server: envoy が含まれていました。これは App Runner の内部プロキシ(Envoy)に到達していることを示しています。 $ H s x T e - c T r c u P a r / e c l 2 r h : e - 4 : I 0 e 4 n E h v r t o r t y o p r s : f / r / o x m x x c x l x o . u c d l f o r u o d n f t r o n t . n e t / つまり、CloudFront → App Runner の通信は成功しているが、App Runner 内部でリクエストがアプリケーション(Cantaloupe)に転送されていないことがわかりました。 ...

2025年12月24日 · 6 分 · Nakamura

AWSのRoute 53で設定したレコードを、さくらレンタルサーバで使用する(共有SSL)

概要 AWSのRoute 53で設定したレコードを、さくらレンタルサーバで使用する備忘録です。加えて、Let’s Encryptを用いて、無料SSLを使用します。 さくらレンタルサーバ ドメイン/SSLにアクセスして、「ドメイン新規追加」ボタンを押します。 画面下部の「他社で取得したドメインを移管せずに使う」の「追加」ボタンを押します。 独自ドメインを入力して、「追加」ボタンを押します。以下の例では、「aaa.example.org」としています。 追加後、追加したドメイン名の「設定」>「DNSレコード設定」を押し、AレコードのIPアドレスを控えます。 AWSのRoute 53 先ほど控えたIPアドレスを使って、レコードを追加します。 さくらレンタルサーバ SSLの設定を行います。 「SSL証明書の種類を選択」ボタンを押します。 「Let’s Encrypt (無料SSL)」の「利用する」ボタンを押します。 設定後、以下のような画面になります。少し待ちます。 その後、ドメイン設定において、以下のように設定します。 さらに、それぞれのドメインに対して、「WEB公開フォルダ」を設定することで、ルートディレクトリを変更することができました。 まとめ AWSのRoute 53以外でも同様の手続きを行うことができると思います。 間違っている点もあるかもしれませんが、さくらレンタルサーバでの独自ドメインおよびSSLの利用にあたり、参考になりましたら幸いです。

2025年3月18日 · 1 分 · Nakamura

iiif-prezi3を使って、動画に目次を付与する

概要 iiif-prezi3を使って、動画に目次を付与する方法に関する備忘録です。 セグメントの検出 Amazon Rekognitionのビデオセグメントの検出を用います。 https://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/segments.html 以下などでサンプルコードが公開されています。 https://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/segment-example.html 使用するデータ 『県政ニュース 第1巻』(県立長野図書館)を使用します。 https://www.ro-da.jp/shinshu-dcommons/library/02FT0102974177 マニフェストファイルへの反映 以下の記事などを参考に、マニフェストファイルが作成済みであるとします。 以下のようなスクリプトにより、マニフェストファイルにvttファイルを追加します。 f # c r | l o a m e s x s d d i p e e i o I f f i r i f t i l w m r a m p w r r c f o w r _ f o i a e d a a i a a a o u i e p C a t n t d n t t n n n r t t t r l d h i u _ i h h g g v p h u e i _ m f r s f d e e i l a s s i i s e r r } u f r z e m o a e n e e = o a _ _ d a s _ f n t n a a ) t o . n i n a p n s g s p t i t = b _ i t d a d n n _ p w 3 t n e i t m m t f e a d o f e i n y s e r g g p e r o : i n f a e " n c " l d p _ c x t = e i l e " " a n i u i f ( e = n n = { ( = = { = d e t o _ d a _ i t t ( t t m e m s i t s p = r " = a y n = = s s = b s d y h o e p p s a t M f ( s e a j f a T t = p t [ e f e e " p u ( u o t n _ a e s e l t s " m n a m a e i s s " g " l g : e = t m t r ( i j n s e l f h o { a g b a [ s n [ [ E { = . " p a _ t s f s i t l f . , n s n e l n " [ ! u " " n = r f i f : f u n p e e o f f . i . e i _ e i S " = e S S d a " t " " t i a M l s n e , l n " l l f i f e T h t r n S e { " { _ f t a f t s o p r o f e d o e g y " o a T a g e m c C s p e h n , _ = t m a u " a . s } f s m p S t r i n e g s a a e a s i p ( a d t ) d p t t e e H t m g _ m . n n l t t f m a j * n _ _ ( r . r C . n " O I e e i e a v v f h . e a t s * i m d a f e m " o i t ] T n T s _ d n p a a . , j s n h o m f a i s ) f a , n t s " d i t t } t p s s i s t i , n a e n r i k t e " : e m a o / e _ " n " o , f . n s i } f x e e m ] x e m c r { n i p w n e " l i t f / : } _ n s : " s p . { i d d u " ( A s r o f _ e o / r t [ ] t m i n ( } t ) i n t " a e p s u r a s 0 a ( a n d { # _ n n _ ) d s a t t a n " ] m m k d e t d a d o p ( t t ( p n g . p i e e x = i s e t a a f _ h m u g e i l _ x } { r n a t s ) j ) a t e ( d ( l r } " s } f t t h s : n _ " m i a " , t / : = i ) f o i s i s n , a m 2 o : : n f e l e g r a ) n ) e g l c e t n ) P s m i o ( } i a t e s n , f g _ n e d { e e p t c s e s , a . o ) n t t j n " d _ A h s d ] } s n ) o s " e n n ) / , g o " " m t ] 1 e a 0 n t / 0 t i 0 . o 1 j n 0 s , 0 o 0 n R " e s o u r c e I t e m , c o n f i g , H o m e p a g e I t e m , K e y V a l u e S t r i n g 以下のようなマニフェストファイルが作成されます。 ...

2024年10月9日 · 12 分 · Nakamura

iiif-prezi3を使って、動画にアノテーションを付与する

概要 iiif-prezi3を使って、動画にアノテーションを付与する方法に関する備忘録です。 アノテーションの付与 Amazon Rekognitionのlabel detectionを用います。 https://docs.aws.amazon.com/rekognition/latest/dg/labels.html?pg=ln&sec=ft 以下などでサンプルコードが公開されています。 https://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/labels-detecting-labels-video.html 特に、GetLabelDetectionにおける集計をSEGMENTSにすることで、StartTimestampMillisとEndTimestampMillisを得ることができます。 ただし、以下の点に注意が必要です。 SEGMENTS による集計の場合、境界ボックス付きの検出されたインスタンスに関する情報は返されません。 使用するデータ 『県政ニュース 第1巻』(県立長野図書館)を使用します。 https://www.ro-da.jp/shinshu-dcommons/library/02FT0102974177 マニフェストファイルへの反映 以下の記事などを参考に、マニフェストファイルが作成済みであるとします。 以下のようなスクリプトにより、マニフェストファイルにvttファイルを追加します。 f # c r | l o a m e s x s d d i p e e i o I f f i r i f t i l w m r a m l w c l a a c f o w r _ f o i a e d a a i a a n n a o u i e p C a t n t d n b t n b n n n r t t t r l d h i u _ i e h v e o o v p h u e i _ m f r l f l l a l _ _ a i l s e n a a a u f r z e m o a e n a e _ o a s s p p s a t n a n n n t o . n i n a p n s b s p p b a a . i b a d m n n n _ p w 3 t n e i t m e t a e e = = g g a n e r e o o o p e r o : i n f a l t n l e e n l t = _ i m t b } _ a a n i u i f ( e = n _ = h ( _ m l _ n r = i = d o a o p n t ( t t m e m s i s l s a a i = o a = = l d = t r d a n h o e p p s a t M f e s = a e n b d t n a l A a i g y g o u ( u o t n _ a e g e b g i e A a g l l b a = n n v e = " " " e = t m t r ( i j n s m l f e f l = n t e a a e b n n a t { t v f . p a _ t s f s i t e f " l = e _ n i ( b b l e f o o t = y a o a f u n p e e o f n . { _ s s f o o l e e [ l " t _ i c p l r d " t i a M l s n e t l s p j t e " t n e l l " [ { a i o a e u m d { _ f t a f t s ( o e a s . g { a s n s [ E " a t d n n " e a _ s p e h n , _ = t s a l t o i [ c t . ( [ " n L n i , = v : " t i e a s i p ( e d f h n t " a i a l i S d a n o " a : " t l t t f m a j * l _ . , . e L n o p a ] t T b o n t s " : e f h . e a t s * f m i l m a v n p b a i e _ ( a . T n m . , j s n h o m , a n " o s b a P e e r m l p g i e a " ( i s t i , n a n p r a [ e s a n l t e " a g d x m t n " o , f . n m i u " d 0 l . g d s T s ] g i t e e p w n e " l i a f t ) ( ] s i e ( ) i t [ e n + u , x u " ( A s r o f n e _ f " d ( a ) m a " _ g a t t ) i n t " a e i s d a ) ] } i n : e m N i " " l / _ n n _ ) d s f t i s / d n s p a d , # B p d a d o p ( t e ( r p = o t " m } t o l i s e t a a f _ s m } f a a _ a ] e / = d a r n a t s ) j t a / : g n p m " a " y i } f t t h s _ n o e n a p / ] { " n / : = i ) f o p i u 1 o g " i + , " m 2 o : : n a f t " _ e ] 1 } , a ) n ) t e p p ) 0 " s n ) P h s u a / 0 t i a ) t t g 0 r f g : _ _ e 1 ( e e p l _ 0 s s , a a i 0 t t t b d 0 a _ A h e ) r l n ) l t a n _ ) b o s e t e + l a g _ t . " s i j , e o s " g n o . , n + j " s R s o e t n s r " o ( u e r n c d e ) I , t e m , c o n f i g , H o m e p a g e I t e m , K e y V a l u e S t r i n g 以下のようなマニフェストファイルが作成されます。 ...

2024年10月9日 · 16 分 · Nakamura

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

概要 AWSサーバーレスアプリケーションによるIIIF Image Serverの構築に関する2024年度版の記事です。 背景 以下で、serverless-iiifというリポジトリが公開されています。本リポジトリを用いることにより、AWSのサービスを用いて、コスト効率が高く、無限にスケーラブルなIIIF Image Serverを構築することができると謳われています。 https://github.com/samvera/serverless-iiif 以下で、2022年時点の使い方を紹介しましたが、今日のサービスはより使いやすいものになっていました。 方法 いくつか構築方法がありますが、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の構築にあたり、参考になりましたら幸いです。 ...

2024年9月9日 · 1 分 · Nakamura

mdxのオブジェクトストレージを使用する(Cyberduckの利用)

概要 mdxのオブジェクトストレージを使用する機会がありましたので、備忘録です。 https://mdx.jp/ 料金 2024年度の料金は以下のようになっています。 https://mdx.jp/guide/charge 1GBあたり、0.01ポイント(円)/日となっており、おおよそ1GBあたり、0.3円/月となっています。 申請方法 & s3cmdを用いた使い方 以下の公式チュートリアル動画が参考になりました。 https://www.youtube.com/watch?v=IN_4NS9hO2Y Cyberduckを使う 上記の動画ではコマンドラインツールによるファイル操作方法が紹介されています。 ここでは、Cyberduckを使用して、GUIを使ってファイル操作を行います。 AWS S3に対するCyberduckの操作方法を以下の記事で紹介しています。以下の方法を参考に、mdxのオブジェクトストレージに接続してみます。 接続設定 「新規接続」から接続設定を行います。 「Amazon S3」を選択して、サーバに「s3ds.mdx.jp」を入力します。 そして、発行された「アクセスキーID」および「シークレットアクセスキー」を入力します。 バケットの作成 右クリック > 「新規フォルダ」でバケットを作成できます。 ファイルのアップロード 以下のいらすとやさんの画像を使用します。 https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNuMuIaXnIW5QJXkLiV1ojUeUiIwNQF1O0lp2LgG2LGJUbIU8j4bFAyLyKq3BiYp53p0Yc8AtMsEykJAQgEx4SJyFvKY4OyNeDBFopPb4lnV7_wtZNkr91qwj6-m-8s-sl1aadYMhrpuoI/s800/baby_asia_boy.png 「satoru196」フォルダにドラッグ&ドロップでアップロードすることができます。 上述した公式チュートリアルでも言及されていますが、このままでは以下のURLにアクセスしても、表示ができません。 https://s3ds.mdx.jp/satoru196/baby_asia_boy.png 以下のようなエラーコードが表示されます。 < < < < < < E s C M R H r c o e e E r r d s q s r o i e s u t r r p > a e I o > t A g s d r / c e t > > > c > I 0 e A d 0 s c > 0 s c . 0 D e . 0 e s . 0 n s < 0 i / 0 e D R 0 d e e 0 < n q 0 / i u 0 C e e 0 o d s 0 d < t 0 e / I 0 > M d 0 e > < s / s H a o g s e t > I d > ACLの変更 ファイルを右クリックして、「情報」をクリックします。 ...

2024年7月6日 · 1 分 · Nakamura

Amazon S3とRoute 53を使ってリダイレクトする

概要 あるURLから他のURLにリダイレクトさせる必要があり、Amazon S3とRoute 53を使用して実現することができたので、備忘録です。 方法 この方法では、S3バケットを使ってリダイレクトを行い、DNS設定にはRoute 53を使用します。以下にその手順を説明します。 ステップ1: Amazon S3バケットの設定 Amazon S3で新しいバケットを作成します。バケット名はリダイレクトさせたいドメイン名と一致させます(例:example.com)。 バケットのプロパティで「静的ウェブサイトホスティング」を選択します。 「静的ウェブサイトホスティング」のオプションで、「リダイレクト要求」を選び、リダイレクト先のURL(http://example.net など)を入力します。 ステップ2: Route 53でのDNS設定 Route 53で、リダイレクトするドメイン名のホストゾーンを開きます。 新しいレコードセットを作成します。レコードのタイプは A を選択します。 「エイリアス」を「はい」に設定します。 エイリアスターゲットとして、ステップ1で設定したS3バケットの静的ウェブサイトホスティングのエンドポイントを選択します(例:example.com.s3-website-us-east-1.amazonaws.com)。 これで、指定したドメインにアクセスがあった場合、設定したURLにリダイレクトされるようになります。この方法は、簡単でありながら効果的にドメインから別のURLへのリダイレクトを実現することができます。 まとめ 参考になりましたら幸いです。

2024年7月3日 · 1 分 · Nakamura

StrapiでCSPのエラーが発生した際の対処法

概要 Strapiと以下のプラグインを使って、メディアをS3に格納する構成としました。 https://www.npmjs.com/package/@liashchynskyi/strapi-provider-upload-s3-cloudfront その際、以下のエラーが発生し、画像が表示されませんでした。 R e f u s e d t o l o a d t h e i m a g e ' h t t p s : / / x x x / u p l o a d s / y y y . j p g ' b e c a u s e i t v i o l a t e s t h e f o l l o w i n g C o n t e n t S e c u r i t y P o l i c y d i r e c t i v e : " i m g - s r c ' s e l f ' d a t a : b l o b : d l . a i r t a b l e . c o m " . この課題に対して、以下の記事で述べられている通り、./config/middleware.jsを修正することで、この問題を解決することができました。 ...

2024年6月12日 · 1 分 · Nakamura

AWS CLIを使用したS3バケットの一括削除

AWS CLIを使用してS3バケットの一覧を取得し、特定のパターンに基づいてバケットを削除するには、以下の手順を実行できます。ここでは、wbyという文字列で始まるバケットを削除する方法について説明します。 必要なもの AWS CLIがインストールされていること。 適切なAWSの認証情報とアクセス権限が設定されていること。 ステップ 1: バケットの一覧を取得 まず、インストールされているAWS CLIを使用して、すべてのS3バケットの一覧を取得します。 a w s s 3 l s ステップ 2: 条件に一致するバケットの削除 wbyで始まるバケットを削除するには、シェルスクリプトを利用して条件に一致するバケットをフィルタリングし、それらを削除します。 以下のスクリプトは、wbyで始まるバケット名を検索し、各バケットを削除します。注意:このスクリプトはバケットとその中のすべてのオブジェクトを削除します。実行前にデータのバックアップを確認してください。 a d d w o o s n e s e a 3 c w h s l o s s " 3 | D e r a l b w e k t s i 3 ' n : { g / p / r b $ i u b n c u t k c e k $ t e 3 t } $ ' b u - | c f k o g e r r t c e . e p . . " ^ w b y ' | w h i l e r e a d b u c k e t このスクリプトは次のことを行います: ...

2024年4月26日 · 1 分 · Nakamura

ArchivematicaでAmazon S3を処理対象およびAIPの保存先に設定する

概要 Archivematicaにおいて、Amazon S3上のファイルやフォルダを処理対象として、さらに処理結果であるAIPをS3に保存する方法に関する備忘録です。 S3をストレージとして利用することにより、他のシステムとの連携の容易化や、AIPの長期保存に関する選択肢が増えると考えられます。 ウェルカムコレクションの以下の記事が参考になりました。 https://docs.wellcomecollection.org/archivematica/administering-archivematica/bootstrapping Amazon S3の設定 バケットを作成します。今回、us-east-1リージョンに、archivematica.aws.ldas.jpというバケットを作成しました。 そして処理対象のファイルなどを格納する「transfer_source」、処理結果であるAIPを格納する「aip_storage」というフォルダを作成しておきます。これらの名前や階層は任意で、後述の過程でどのフォルダを使用するか設定できます。 Archivematica Storage Serviceの設定 Dockerを使ってArchivematicaをインストールした場合、以下のようなURLでArchivematica Storage Serviceにアクセスできます。 http://127.0.0.1:62081/ ログイン後、以下にアクセスします。「Create new space」リンクをクリックします。 /spaces/ 「Create Space」の画面で、以下のように入力します。「Access protocol」にS3を選択し、Access Keyなどを入力します。 Staging pathについてはよくわからず、以下の記事の値を入力します。 https://docs.wellcomecollection.org/archivematica/administering-archivematica/bootstrapping#step_7 Spaceを作成後、「Create Location here」を押して、ロケーションを作成します。2つリンクがありますが、どちらも同じでした。 ここで、2つのロケーションを作成します。一つは、以下のような、Purposeを「Transfer Source」とするロケーションです。 Relative Pathについては、「Browse」ボタンから、先に作成したフォルダから選択します。 また上記ではPipelineがひとつですが、複数のPipelineを作成している場合には、関連づけるものを選択することになると思います。 もう一つは、以下のような、Purposeを「AIP Storage」とするロケーションです。 それぞれの画面で、「Set as global default location for its purpose:」という項目がありますが、これをチェックしておくと、後述するデフォルト設定などが不要になります。 確認 ここまでの設定により、/spaces/にアクセスすると、デフォルトのAccess Protocolが「Local Filesystem」のスペースに加えて、Access Protocolが「S3」のスペースが追加されていることが確認できます。 さらに、/locations/にアクセスすると、追加した2つのロケーションが追加されていることが確認できます。 Archivematica Dashboardの設定 Dockerを使ってArchivematicaをインストールした場合、以下のようなURLでArchivematica Dashboardにアクセスできます。 http://127.0.0.1:62080/ AIPの格納先の設定 そして以下にアクセスして、例えばプロセスautomatedを編集します。 /administration/processing/ ...

2024年2月3日 · 1 分 · Nakamura

Docker版Cantaloupeを使用して、S3バケットにアクセスしSSL通信を行う方法

概要 Docker版のCantaloupeの使い方を以下で紹介しました。 このDocker版Cantaloupeを(大規模ではない)production環境で使用するには、Amazon S3との接続や、SSL対応が求められます。その方法を一例を紹介します。 Amazon S3との接続 公式では以下で紹介されています。 https://cantaloupe-project.github.io/manual/5.0/sources.html#S3Source 日本語の記事として以下があります。 また、今回扱うDocker版では、以下に記載がありました。 https://github.com/Islandora-Devops/isle-buildkit/blob/main/cantaloupe/README.md#settings そこで、S3と最低限の接続を行うためのリポジトリを作成しました。 https://github.com/nakamura196/docker_cantaloupe_s3 .env.exampleを.envにリネームまたはコピーして、必要な値を入力します。 SSL対応 以下の記事を参考にしました。EC2上にDockerをインストールし、nginx-proxyとnginx-proxy-lets-encryptを利用してSSL化を行いました。 https://qiita.com/atsuya/items/7cb6e0ccee63d751d41f v # s n e e o e r p r n l l c h v d t d s r v g e u e t h h w e i o i i i c p l r t i c d - - - m r m o p o f e o x c n m o o o a e s m o e o e t l s a r a x n y e x a n r - - l - - - b - s e a n p " l c v h s s : t r k u t n : s - g t t u e t n g t e n u e h t v : : : a s l e a : p e a s " " m h d v c / l " a c e a n g m r o m a m : t r m ' r : i : 8 4 e t h h e s s c r r : i d i e t s l r : : n e 3 o n 0 4 s m p o r a r : o t y n s n s s t : a : ' x j e : 3 : l a s t r m : p j e _ x : : : r l y w r 8 : : r t s / / . t r r o - / u u : c : i _ 0 4 / a : : r d g a : c _ n p e e s n o l n " 4 u m / / u o i l s n : r t t r m d a 3 s : e e n c t w / a o c c d m e m " r t t / k h a l m x / s o o r e e c c d e u y e e y n n h c n / : s t / / o r b s t : " g g a k _ n h c n n c / . s i i r e l g n a / g g k n j e n n n e r i i g r n i i e g r n g x x . n n i e g n n r i c c i / n s k x n / i x x . n s r n c v g o - x n n / s x . y x e h i c p - g x c o - l p - r o n k r p i / h e c p e t p t s x : o r n d o r k r t - r s t / x o x h s t : s n o : . h v y x / p t s x e g x r d t a y h a . : t y n i y w m r t r d r m - c n - l / m a o p w r x l r l m / i y - e u d t p p t n o h t r s / c - _ o - d k e n x e o e n g y n c r c i - c k . r n c r e s y x o y r o p _ m p . c t p p t s k / r a o : l o n c r o x i k o g y o : : _ n r / c o v o a m r p / a l n o i g o / n n . g n i g n i x n x _ p r o x y " s n e e r c t d v a w e i n i e r o f e c t m n e r a x e a a v C C C C C C C C V L L s k u t n s l g i A A A A A A A A I E E t s l e a : o e r N N N N N N N N R T T a : t r m u : o T T T T T T T T T S S r : n e p n A A A A A A A A U E E t a : e i m L L L L L L L L A N N : l : s e O O O O O O O O L C C : c l n U U U U U U U U _ R R a o a t P P P P P P P P H Y Y l m n : E E E E E E E E O P P w m d _ _ _ _ _ _ _ _ S T T a o o E E S S S S S S T _ _ y n r N N O 3 3 3 3 3 : H E s _ a D D U S S S S S O M l / P P R O O O O O < S A i c O O C U U U U U カ T I n a I I E R R R R R ス : L k n N N _ C C C C C タ : t T T S E E E E E ム < a _ _ T _ _ _ _ _ ド カ < l A A A A S R B L メ ス メ o D D T C E E A O イ タ ー u M M I C C G S O ン ム ル p I I C E R I I K > ド ア e N N : S E O C U メ ド : _ _ S T N L P イ レ 2 E S S _ _ : O _ ン ス . N E 3 K K O S > > 0 A C S E E $ K T . B R o Y Y { U R 1 L E u _ : C P A 0 E T r I A S T D : c D $ N T E : e : { T R G m C A A Y f y $ A L T : a _ { N O E l a C T U G B s d A A P Y a e m N L E _ s i T O _ B i n A U S U c _ L P 3 C L p O E S K o a U _ O E o s P S U T k s E 3 R _ u _ S C N p S O E A S 3 U _ M t S R R E r O C E : a U E G t R _ I $ e C S O { g E E N C y _ C } A A R N # C E T C T A O E _ L r S K O S E U a _ Y P n K } E o E _ t Y S h _ 3 e I S r D O } U s R t C r E a _ t B e A g S y I C i L f O O n K e U e P d S e T d R A T E G Y _ B U C K E T _ N A M E } まとめ IIIF画像サーバの小中規模の利用にあたっては、上記のような形が比較的容易な導入方法の一つに当たるかと思います。 ...

2024年1月27日 · 7 分 · Nakamura

Amazon Lightsail上に立てたOmeka SからAmazon SESでメールを送信する

概要 Amazon Lightsail上に立てたOmeka Sからメールを送るには、メールの送信設定が必要なようです。今回は、Amazon SESを使用する方法を紹介します。 https://aws.amazon.com/jp/ses/ 以下のフォーラムでのやりとりが参考になりました。 https://forum.omeka.org/t/configuring-sendmail-or-smtp-for-omeka-s-on-amazon-lightsail/19335/1 Amazon SESの設定 以下のサイトなどを参考にして、Amazon SESの設定を行います。 https://qiita.com/Shun_konno/items/f51ae599b68e0d2d36ea Omeka Sの設定 Omeka S の local.config.php ファイルを以下のように編集します。 < r ] ? e ; p t h u p r ' ] ' ] n l , m , o a ' [ g i u そ g l ' s ] の e ' t e , 他 r r _ の ' ロ = a c 設 グ > n ' o ] 定 = 設 s t o m , . > 定 [ p y p p . ( o p t l . [ 必 r e i ' ' ' ' ' e ] 要 t ' o n h p c c t , に ' n a o o o o e 応 = s m s r n n _ じ = > ' e t t n n ' ' ' q て > ' ' ' e e u p s u ) ' = c c s a s i [ s > = = = t t e s l t m > > > i i r s ' ' t [ o o n w p ' ' 5 n n a o = ' s e 8 _ _ m r > , e m 7 c c e d s a , l o ' ' t - i a n r s l s f = = = u m - s i > > > e S t s ' g , M p m ' ' ' ' T - t y y t P u p = = o o l s . > > u u s を e u r r ' 使 r s ' [ - - , 用 ' - p s s , e l e e a a s s s i - - t n s s - ' m m 1 , t t . p p a - - m u p a s a z e s o r s n n w 任 a a o 意 w m r の s e d 名 . ' ' 前 c , , o m ' , S S S S 認 E E S E 証 S S L S S タ E イ S S タ S が プ M M イ サ T T プ S ポ P P ( M ー ' T ト ユ パ t P す ー ス l る ザ ワ s サ ポ ー ー ' ー ー 名 ド バ ト 推 ー ( 奨 エ 例 ) ン : ド ポ 5 イ 8 ン 7 ト ) host には、使用している AWS リージョンに応じた Amazon SES SMTP サーバーのエンドポイントを指定してください。例では us-east-1 リージョンのエンドポイントを使用していますが、必要に応じて変更してください。 username と password は、Amazon SES で生成した SMTP クレデンシャルを使用してください。 まとめ Amazon Lightsailを用いたOmeka Sの利用にあたり、参考になりましたら幸いです。 ...

2024年1月13日 · 3 分 · Nakamura

Amazon SNSを用いたEC2上のVirtuosoの再起動

概要 以下の記事で、ヘルスチェックを行う方法について記述しました。 また、Virtuosoが停止した際の再起動のためのコマンドを以下に記述しました。 今回は、Amazon SNSを用いた通知に合わせて、Virtuosoを再起動してみます。 方法 EC2インスタンスにsudo rm -rf /usr/local/var/lib/virtuoso/db/virtuoso.lck && ...のようなコマンドを送信するには、SSM(AWS Systems Manager)に関する設定が必要でした。 IAMロールとポリシー IAMロールを新規に作成して、AmazonSSMFullAccessというポリシーを許可しました。はじめ、AmazonSSMManagedInstanceCoreというポリシーを許可していましたが、後述するlambda実行時に以下のようなエラーが発生して、うまく動作させることができませんでした。 A n e r r o r o c c u r r e d ( I n v a l i d I n s t a n c e I d ) w h e n c a l l i n g t h e S e n d C o m m a n d o p e r a t i o n : I n s t a n c e s [ [ i - x x x x x x ] ] n o t i n a v a l i d s t a t e f o r a c c o u n t x x x x x x EC2インスタンスの「IAMロールを変更」から、作成したIAMロールを選択して更新しました。 ...

2023年11月24日 · 11 分 · Nakamura

samでError: Running AWS SAM projects locally requires Docker...への対応

概要 AWS SAMを使ってsam local invokeを試した際、以下のメッセージが表示されました。 E r r o r : R u n n i n g A W S S A M p r o j e c t s l o c a l l y r e q u i r e s D o c k e r . H a v e y o u g o t i t i n s t a l l e d a n d r u n n i n g ? 環境はMacで、Dockerも動作していました。 ...

2023年11月24日 · 1 分 · Nakamura

Cantaloupe: Amazon S3に格納した画像を配信する

概要 IIIFイメージサーバの一つであるCantaloupe Image Serverについて、Amazon S3に格納した画像を配信する方法の備忘録です。 なお、Amazon S3に格納した画像を配信する別の方法として、以下の記事で紹介した方法もありますので、参考になりましたら幸いです。(記事執筆時点からツールが更新されているようで、記事通りに進められないかもしれません。) 設定 以下に公式マニュアルが公開されています。 https://cantaloupe-project.github.io/manual/5.0/sources.html#S3Source 以下のファイルを編集します。 /cantaloupe-5.0.5/cantaloupe.properties まず、source.staticをS3Sourceに変更しました。 # # # # # # s # # o # S # U ` s u # O # s H o r # U # e t u c # R # s t r e # C # p c . # E # o S e s # S # n o . t # # e u s a # # r t t # # s c a i # # o e t c # # u ` i # # r , c = # # c # # e ` = S # # J 3 # # f d F S # # o b i o # # r c l u # # S e r # # a o s c # # l u y e # # l r s # # c t # # r e e # # e ` m # # q , S # # u o # # e ` u # # s S r # # t 3 c # # s S e # # . o # # u # # A r # # v c # # a e # # i ` # # l , # # a # # b a # # l n # # e d # # # # v ` # # a A # # l z # # u u # # e r # # s e # # S # # a t # # r o # # e r # # a # # ` g # # F e # # i S # # l o # # e u # # s r # # y c # # s e # # t ` # # e . # # m # # S # # o # # u # # r # # c # # e # # ` , 次に、S3Source.access_key_id、S3Source.secret_key、S3Source.BasicLookupStrategy.bucket.nameを設定します。 ...

2023年11月16日 · 6 分 · Nakamura

Amazon OpenSearch ServiceでDisable autotuneを行う

Amazon OpenSearch Serviceの開発用のドメインにおいて、インスタンスタイプをt3.small.searchからt3.medium.searchに変更しようとしたところ、以下のメッセージが表示されました。 A u t o t u n e i s n o t s u p p o r t e d i n t 2 / t 3 i n s t a n c e t y p e s . D i s a b l e a u t o t u n e o r c h a n g e y o u r i n s t a n c e t y p e . UI上ではAutotuneに関する項目を見つけることができずに困っていたところ、以下のページにCLIを使う方法が記載されていました。 ...

2023年10月3日 · 1 分 · Nakamura

EC2に立てたArchivematicaをHTTPS対応する

はじめに 以下の記事で、EC2にArchivematicaを立てる方法を記載しました。 今回は、独自ドメインの設定とHTTPS対応を行います。 独自ドメインの設定 今回、matica.aws.ldas.jpとstorage.aws.ldas.jpいうドメインを<IPアドレス>に割り当てます。Route 53を使用します。 SSL証明書の取得 s y y e u u u r d m m t o b i i o s n n t u s s t t c a a e l l r l l t o e c n p e l e r y l t - b r o - e t w l e e b a r s o e o t - w / u s r / s h a r e / n g i n x / h t m l - d m a t i c a . a w s . l d a s . j p - d s t o r a g e . a w s . l d a s . j p Webサーバの設定: Nginxのインストール v i / e t c / n g i n x / c o n f . d / a r c h i v e m a t i c a - a n d - s t o r a g e . c o n f 設定 ...

2023年9月22日 · 6 分 · Nakamura

IIIFイメージサーバの一つであるCantaloupeをEC2で起動する

概要 IIIFイメージサーバの一つであるCantaloupeをEC2で起動する方法の備忘録です。 https://cantaloupe-project.github.io/ 加えて、画像のダウンロードサイズに制限を加えるDelegate Methodsの一例についても紹介します。具体的には、フルサイズの画像を/full/full/で取得しようとした際、エラーが出てしまうケースへの対応を行います。 https://cantaloupe-project.github.io/manual/5.0/access-control.html Cantaloupeのセットアップ EC2インスタンスの作成 プラットフォームをUbuntu、インスタンスタイプをt2.medium、ストレージを8GB、に設定したEC2インスタンスを作成しました。 結果、以下の「パブリック IPv4 アドレス」を持つEC2インスタンスが作成されました。 54.172.71.20 ssh 起動したEC2インスタンスにsshで接続します。接続後、以下のコマンドにより、rootユーザのパスワードを設定します。 s p u a d s o s w s d u javaのインストール 以下のコマンドなどにより、javaをインストールします。 a a p p t t - g i e n t s t u a p l d l a t d e e f a u l t - j r e cantaloupeのダウンロード 以下のコマンドなどにより、cantaloupeをダウンロードします。 ...

2023年9月19日 · 9 分 · Nakamura

macOS版のCyberduckを使って、AWS S3の特定のバケットにアクセスする

以下の記事を参考に、Cyberduckを使って、AWS S3の特定のバケットにアクセスする方法を試しました。 https://dev.classmethod.jp/articles/specify_s3_folder_iam_cyberduck/ しかしmacOS版のCyberduckを開き、画面上部の「新規接続」ボタンを押したところ、バケットの情報などを入力するフォームが表示されませんでした。 そこで調べてみたところ、以下のIssueが見つかりました。 https://github.com/iterate-ch/cyberduck/issues/11154 以下のように、ブックマークを開くように、とのことでした。 Please refer to Access third party buckets. To set a default path, create a new bookmark instead of choosing Open Connectoin. そこで、以下のように、画面左下の「+」ボタンをクリックしたところ、 以下のように、詳細設定のフォームも表示され、パス(バケット名)を指定できるようになりました。 同様のことでお困りの方の参考になりましたら幸いです。

2023年8月16日 · 1 分 · Nakamura

Amazon EC2に立てたVirtuosoのヘルスチェックを行う

概要 Amazon EC2に立てたVirtuosoのヘルスチェックを行う機会がありましたので、その備忘録です。 具体的には、何らかの不具合で、Virtuoso(https://xxx.zzz/sparql など)がエラーを返すようになってしまった際、その内容をメールで通知します。 方法 以下の記事で、Amazon EC2にVirtuoso RDFストアを構築する方法を紹介しています。 上記では、ELBを使用しています。上記の記事から1点だけ変更を行う必要があります。Health check pathを/に設定していますが、この部分をSPARQLエンドポイントへのパス(例えば/sparql)に変更します。 その後、以下の記事を参考に、CloudWatchやAmazon SNSの設定を行いました。 https://dev.classmethod.jp/articles/elb-healthcheck-monitoring-by-cloudwatch-alarm/ 結果 以下のようにモニタリングを行うことができるようになりました。 またアラート発生時には、以下のようなメールが届くようになりました。 Y V h A - - - - - - T - M - - - - - - - S - - - o i t l h o t u e t a N S R T A A r T n M M D P S U T a O A I w p r a t e i W l e h i e e i e t n r t K L N a s m m a a m S a s e t t t m r a i e e : A S r t : e t s e r h o r r e i t t a R U e h / D : e o s A m o a r i i n o i : t C M F i / e n t c l l e c c s d s M h : F r s u t C a c A d a d N N i : t i a I e s a h f m o r : r a a o i s n [ C c a - i a o p u n m M m m n c s g a I e l e l n r : n : e e e s : i e r E i a a s g t i t s : : n n N v r s : e S : s r p g A : T i m t : t i a D c a _ n - a i c c a t w D g i 1 t n : e t i s A n . e : a o : T t c t : n s A h t o C h s n : i h n h e : s s e s a : o n A u e A l g L s m W e e A - a S . : R e i a M a l M w s a s s t b n . t - e a a v O T F x a a 1 c g m i K h r x r t : a e a r r i x n e x u m z t e d x : x s e o u s a x a w x e n n o h y x w h x t . s A o x s e x y c o L l 1 x : n x o C o - A d 4 x c x u o m u R x l t A U [ 6 M n b x r n / n M C J x o h W n T 0 i o r x s c h r u x u e S H a n t e x A o l e o l x d / e r s i a x m l o a s y x w m A a g e m s c x a e u l s , a e p l e c u p h x z : d t e t t p t t o m e i x o w h d 2 c r l h G n c n : n a y : 0 h i i y r d i g D t h 2 : c c H o s f e C c o n 3 u a o u i f l h s o s i t s p e a o / t 0 - s i t d u u d c d 8 e o C = l d e o a : a G n o t W e u t 0 s r E u t _ a p n a 5 t e L n a C t l t p : - a B t r l c i - o 3 1 t g o h n a i 0 : e e u k l n x r t d A . a t U x T g W l j r s T x h r a a s m C x a o t r ? w x n u c m r e x O p h e r x r / _ " g e x E v A v i x q i l i o r x u r a r n e x a t r t = c x l u m u u e x T o s o s i x o s _ s - v : T o T o e e a h ] o - a d l r p u s a e [ i n t f r s A c h - o m h v ] e 1 r : o a a # v l i l a 5 i d l t l r a h a p t 1 b y r e u . i h m r o 0 l o s i s i s V o o f t t 2 d - o y c : s u r Z o a n o u l a h a n n a n e t e t r d a - m l l = a / 5 t e l v h a u a i m y s s r r i h t - m t s o e " u s s 5 a o i t s i s n c o t n o g o f - - u 1 t u d n t a h n a t h ] e h t - e e a a [ U a p l l L S l o a a o t i r s a E h n m t d a y t B s h s 5 a t o l s w p a ( t e e n N c r r c . o e i e u o r V n t d i t r ( = r - e s g a a ) a i l t p n a e o p i r d f / a m v ) a 6 i s 0 r r t e [ s u g B e o i r c s o e o o n a n / c d y h h s y a i . y s n y g y e ] y n . y t y e y r y e y d y y t y h y e ] A L A R M s t a t e , b e c a u s e " T h r e s h o l d C r o s s e d : n o d a t a p o i n t s w e r e r e c e i v e d f o r 5 p e r i o d s a n d 5 m i s s i n g d a t a p o i n t s w e r e t r e a t e d a s [ B r e a c h i n g ] . " a t " F r i d a y 1 4 J u l y , 2 0 2 3 0 8 : 0 5 : 3 0 U T C " . まとめ 同様の環境でVirtuosoを運用されている際の参考になりましたら幸いです。 ...

2023年7月14日 · 7 分 · Nakamura