Github Actionsを使ってGithubからEC2までのDjangoのCICD環境構築(2023版)

概要 Github Actionsを使ってGithubからEC2までのDjangoのCICD環境を構築する機会があり、その備忘録です。 以下の記事を参考にさせていただきました。 https://qiita.com/fffukken/items/27b0bfa712940914d3f6 上記の記事に対して、Github Actionsの設定を一部更新しました。 Github Actionsの設定 n o j a n o m : p p b b e u u s u : s b l b : i r s s - - - - - e h r l r l u t t n T : a _ a d n r m m e u n u w n r n r n r v S E E e n r n : s a a a p s a s i a u a u a u : E C C s c e c - t x t p s e m e t p m n p p m n p p p m n e c s & & & & & & C 2 2 t h q h o e - r y : s e s h y e : y i e : y y y e : c h s & & & & & & R _ _ e u e n g p i t : : : : t : t p : t t t : h m h E U H a s e s : y a x h h | h | h h h o c g p p d s T S O n : s : : r : o a S a o I o i R o o o d d d i y y e u _ E S d t u a n c e c n n n n u n n n e " o t t t a d K R T [ : [ b l - t t t - s s n p $ 6 S ~ h h c o E : : D u l v i i v t - t m m m l S 0 t / p o o t Y e d d n e e o u o e a m a T a a a o E 0 r < u n n i s : $ $ p e e t l r n p n r l l e n n n y C i プ l v y { { l v v u : s s s s l p l s a a a R s c ロ l m m a s $ { { o e e - i / P / i i t g g g E e t ジ a a t t { y l l l 4 o c y s o D p - s e e e T c H ェ o n n e e { s s o o a n h t e n e r . . . _ r o ク r a a m e e p p t : e h t : p i p p p K e s ト i g g \ c s c c , e c o u e n r y y y E t t 名 g e e t e r r ] s [ k n p $ n s e Y _ K > i . . l c e e m t 3 o - { d t q m m t " k e \ n p p r t t a . u $ p { e a u a i e e y y y r e s s i 9 t { y n l i k g s > y C m e t . . n , @ { t m c l r e r t h a m m s s E E v h a i e m a s e i a i t . C C ] " 3 m o t e m i t e c n k g a S 2 2 3 a n r s - e g e c k e r r E _ _ . t @ i u n r r i \ m a t C U H 1 r v x p t a e n i t R S O 0 i 4 . g s t t g g e g E E S " x p r . i _ = r u T R T ] . y a t o k n a \ n _ p t d x n e o t i K } } y h e t s y i c E } } t o $ o o Y h n p { n r o - i E s n } n v p C " } - e 2 \ v r _ e s U r i S s o E i n R o } n } @ } $ } { } E C 2 _ H O S T } - i s e c r e t _ k e y " s o u r c e < 仮 想 環 境 名 > / b i n / a c t i v a t e \ 変更した点として、actions/checkoutとactions/setup-pythonのバージョンを変更しました。また、pip installの部分を変更し、pip install -r requirements.txtにしました。 ...

2023年7月9日 · 5 分 · Nakamura

Amazon ECRのリポジトリを一括削除する

概要 Amazon ECRのリポジトリを一括削除する機会がありましたので、その備忘録です。ご利用される際は注意して実行してください。 リポジトリの一覧を作成 以下の記事を参考にしました。 https://qiita.com/fk_2000/items/bffd3b1ad6f3ab109766 以下を実行します。 a w s e c r d e s c r i b e - r e p o s i t o r i e s o u t p u t j s o n | j q - r e " . r e p o s i t o r i e s [ ] . r e p o s i t o r y N a m e " > r e p o s i t o r y . l i s t macの場合でjqコマンドがない場合、brew install jqなどを実行してください。 ...

2023年6月6日 · 1 分 · Nakamura

OpenAPIとAWS CDKを用いてREST APIを作成する(Opensearch接続・カスタムドメイン)

概要 OpenAPIとAWS CDKを用いてREST APIを作成する機会がありましたので、その備忘録です。以下の記事がとても参考になりました。 https://zenn.dev/taroman_zenn/articles/91879cec40627c 今回作成したものは以下のリポジトリで公開しています。 https://github.com/nakamura196/CdkOpenapi Opensearchとの接続 以下のLambdaで実装しています。 https://github.com/nakamura196/CdkOpenapi/blob/main/lambda/search.ts Lambdaに環境変数を渡す必要があり、lib以下のtsファイルで以下のように記述しました。 c o n s t } ) s e r h e } ; e n u a n , a t n n v E E E E r r t d i L L L L c y i l r A A A A h : m e o S S S S F e r n T T T T n p : : m I I I I a e C C C C = t R " n _ _ _ _ h u h t H U P I n . n a : O S A N e j t n S E S D w o i d { T R S E i m l : N W X N n e e A O _ o ( . r p M R N d _ N " r E D A e _ O , o : : M j d D c E s i E e p p : F r J s r r u n S s o o p n a _ . c c r c m 1 e e e o t e 8 n s s c i , _ v s s e o X . . . s n " , E e e s ( . L n n . t . A v v e h / S . . n i l T E E v s a I L L . , m C A A E b _ S S L " d H T T A s a O I I S e / S C C T a s T _ _ I r e U P C c a S A _ h r E S I " c R S N , h " N W D . " A O E { t , M R X s E D _ " N ) A , M E " " " " , , " " , カスタムドメイン 以下のファイルを参考にしてください。間違いなどがあるかもしれませんが、カスタムドメインの登録からAPI Gatewayへの設定も行ってみました。 ...

2023年5月26日 · 2 分 · Nakamura

StrapiとAmazon OpenSearchを連携する

概要 StrapiとElasticsearchとの連携にあたり、以下の記事が参考になりました。 https://punits.dev/blog/integrating-elasticsearch-with-strapi/ ソースコードも公開されています。 https://github.com/geeky-biz/strapi-integrate-elasticsearch ここでは、上記の記事を参考にして、Amazon OpenSearchと連携するなど、一部カスタマイズした内容についてメモします。 カスタマイズしたソースコードは以下です。 https://github.com/nakamura196/strapi-integrate-opensearch 修正点 以下について、記事ではindexing_typeとなっていますが、indexing_request_typeとする必要がありました。 https://github.com/nakamura196/strapi-integrate-opensearch/blob/006c533d4d7882fc9779552db31a7b0e2ada5e57/elastic/cron-search-indexing.js#L16 またElasticsearchではなく、Amazon OpenSearchを使用するにあたり、以下のライブラリをインストールする必要があります。 n n p p m m i i n n s s t t a a l l l l @ @ o a p w e s n - s s e d a k r / c c h r - e p d r e o n j t e i c a t l / - o p p r e o n v s i e d a e r r c s h 認証の方法はいくつかあると思いますが、ここでは以下のように変更しました。 ...

2023年5月26日 · 1 分 · Nakamura

AWS CDK x CloudFront x S3 x Basic認証 x index.html対応 x 独自ドメイン

概要 AWS CDKを用いて、CloudFront + S3による静的サイトの作成を行いました。合わせて、CloudFront Functionを用いて、Basic認証とURLにファイル名や拡張子を含まないリクエストにindex.htmlを追加する処理を加えています。さらに、独自ドメインの追加も行いましたので、その備忘録です。 色々と不完全ですが、以下のリポジトリでソースコードを公開しています。 https://github.com/nakamura196/staticBasic 以下のような.envファイルを用意してcdk deployを実行する想定です。 C R B R A D E E U E C O R C C G C M T O K I O A _ R E O U I A D T N N N R _ _ = T _ N N N u = N = A A s y A a M M - y M r E E e y E n = = a y = : a a s b a a a t b w a a - b s . . 1 . : b b c a b b o c b b m m . . : c c x o o x m m x x それぞれの説明は以下のとおりです。 ...

2023年5月16日 · 14 分 · Nakamura

DrupalとAmazon OpenSearch Serviceを接続する

概要 DrupalとAmazon OpenSearch Serviceを接続する機会がありましたので、その備忘録です。以下の記事が参考になりました。 https://www.acquia.com/jp/blog/intergration-with-drupal-and-elasticsearch モジュールのインストール drupal/search_apiとdrupal/elasticsearch_connectorに加えて、nodespark/des-connectorをインストールする必要がありました。 (バージョンの指定方法など、改善の余地があるかもしれません。) c c c o o o m m m p p p o o o s s s e e e r r r r r r e e e q q q u u u i i i r r r e e e " ' " n d d o r r d u u e p p s a a p l l a / / r s e k e l / a a d r s e c t s h i - _ c c a s o p e n i a n : r e ^ c c 1 h t . _ o 2 c r 9 o : ' n ^ n 7 e . c x t - o d r e v ^ " 7 . 0 @ a l p h a " 続けて、以下で有効化します。 ...

2023年4月13日 · 4 分 · Nakamura

Amazon LightsailでStrapiを動かす(SSL, 独自ドメイン)

概要 Amazon LightsailでStrapiを動かす機会がありましたので、その備忘録です。以下の記事を参考にしました。 https://zenn.dev/holykzm/articles/1e54cc25207657 インスタンス Node.jsを選択します。 メモリは1GB以上のものを選択してください。Lightsail上でビルドする場合、メモリ不足でエラーが発生します。 SSL、独自ドメイン 以下を参考にしてください。 /ja/posts/5772d6c918508a/#独自ドメインの付与 Static IPを付与して、Route 53で独自ドメインを設定し、以下を実行します。 s u d o o p t / b i t n a m i / b n c e r t - t o o l ProxyPassの設定 (より適切な記述箇所があるかと思いますが、)以下を追記します。 # P P r r 末 o o 尾 x x に y y 以 P P 下 a a を s s 追 s s 加 R / e v h e t r t s p e : / l h o t c t a p l : h / s l t o : c 1 a 3 l 3 h 7 s t : 1 3 3 7 / apacheの再起動 ...

2023年4月11日 · 4 分 · Nakamura

Hugging Face Spaceを用いたNDL古典籍OCRのウェブアプリ

概要 Hugging Face Spaceを用いたNDL古典籍OCRのウェブアプリを作成しました。以下でお試しいただけます。画像アップロードして、1分程度すると、OCR結果のテキストとJSONデータが表示されます。 https://huggingface.co/spaces/nakamura196/ndl_kotenseki_ocr 本アプリの作成にあたっては、以下の記事を参考にさせていただきました。 https://qiita.com/relu/items/e882e23a9bd07243211b 使い分け NDL古典籍OCRを試す環境として、Google Colabを用いたチュートリアルを別途用意しています。 上記では無料でGPUを使用することができるため、高速なOCR処理が可能です。一方、ノートブックの初回起動時に、関連するライブラリやモデルのダウンロードを行うため、4分程度のセットアップ時間がかかってしまう点等に課題があります。 一方、今回Hugging Face Spaceを用いた作成したアプリケーションでは、72時間連続して使用されない(2023年2月時点)限り、OCR処理を即座に実行することが可能です。さらに、Web APIによる利用も可能といった点が挙げられます。(APIによる利用については後述します。)ただし、無料枠ではGPUが使用できないため、1画像あたり1分程度の処理時間がかかる点が課題です。(有料枠でGPUを使用することもできます。) APIによる利用 APIによる利用例を試すことができるノートブックを用意しました。504 Gateway Time-outというエラーが発生してしまう場合もありますが、参考になりましたら幸いです。 https://colab.research.google.com/github/nakamura196/ndl_ocr/blob/main/GradioのAPIを用いたNDL古典籍OCRの例.ipynb まとめ NDL古典籍OCRの精度(≠速度)を試してみる場合など参考になりましたら幸いです。

2023年3月27日 · 1 分 · Nakamura

NDL古典籍OCRをAmazon EC2のCPU環境で実行する

概要 NDL古典籍OCRをAmazon EC2のCPU環境で実行してみましたので、その備忘録です。高額になりがちなGPU環境を用意せずに実行できる点が利点ですが、1画像あたり30秒から1分程度の時間がかかりますので、ご注意ください。 本環境の構築にあたり、以下の記事を参考にしています。 https://qiita.com/relu/items/e882e23a9bd07243211b インスタンス クイックスタートのUbuntuを選択します。 インスタンスタイプについえは、t2.medium以上をおすすめします。それより小さいインスタンスだと、エラーが発生しました。 サーバ内での設定 sshでログインし、以下を実行します。 s s s s s s p u u u u u u y d d d d d d t o o o o o o h o a a a a a a n p p p p p p 3 t t t t t t - - g - - - i i m e y y y n n t s s v i i i t t e u n n n a a n p s s s l l v d t t t l l a a a a a t l l l - - p e l l l y y p & b l u p p & u i n y y i b z t t s l g i h h u d l p o o d - 1 n n o e - 3 3 s m - . a s e p 1 p e s i 0 t n a p - - t - v g i d e e a e n t l v v u l p i g b r g a l d i e b 2 - . y 0 - 0 s o u r c e a p p / b i n / a c t i v a t e p g c v i i d i p t n r i c d e n l l q s o k u t n o i a e t r l e e l h n m t o e t c n - p r t u s _ s p : c . g / l t r / i x a g t d i e t h p u i b p . c o m / n d l - l a b / n d l k o t e n o c r _ c l i . g i t requirements.txtを開き、scikit-imageのバージョンを除く。また、torchとtorchvisionを追加する。 ...

2023年3月27日 · 11 分 · Nakamura

Amazon SageMaker Studioを用いたNDL古典籍OCRの実行

概要 これまで、Google Cloud PlatformやGoogle Colabを用いたNDL OCR及びNDL古典籍OCRのチュートリアルを作成してきました。 今回は、Amazon SageMaker Studioを用いたNDL古典籍OCRの実行方法について説明します。なお、今回の方法では、実行の際に費用が発生しますのでご注意ください。 Amazon SageMaker Studioの説明は以下です。 https://aws.amazon.com/jp/sagemaker/studio/ ドメインの設定など ドメインの設定などは以下の記事などを参考にしてください。 https://dev.classmethod.jp/articles/how-to-walk-around-amazon-sagemaker-studio-new-ui/ 今回は以下のように作成済みのユーザープロファイルから「起動」→「Studio」を選択したところから説明します。 Studioでの操作 ノートブックの起動方法はいくつかありますが、ここでは、「File」→「New」→「Notebook」で起動してみます。 その後、以下のようなダイアログが表示されるため、今回は「ml.g4dn.xlarge」を選択します。 !nvidia-smiを実行すると、Tesla T4が表示されます。 ノートブックの実行 以下のファイルをノートブックをダウンロードし、SageMakerにアップロードしてください。 https://github.com/nakamura196/ndl_ocr/blob/main/sagemaker_ndl_kotenseki_ocr.ipynb ノートブックの作成にあたっては、@blue0620さんのノートブックを参考にしています。 https://github.com/blue0620/NDLkotenOCR-GoogleColabVersion/blob/main/NDLkotensekiOCR_googlecolabversion.ipynb 上記からの大きな差分として、まず、以下を実行しています。これらを行わないと、ライブラリのインストール時に、error: command 'gcc' failed with exit status 1といったエラーが発生します。 ! ! ! a a a p p p t t t u - - p y y d a i i t n n e s s t t a a l l l l b l u i i b l g d l - 1 e - s m s e e s n a t - i d a e l v l i b g l i b 2 . 0 - 0 以下のように、OCR処理が実行されます。 ...

2023年2月27日 · 1 分 · Nakamura

Amazon EC2にArchivematicaを立てる

概要 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の起動後は、上記のサイトに記載されていたコマンドをすべて実行します。以下をコピー&ペーストすることがでインストールできます。 s # s s # s s # s s s s [ n b g g e a t E s [ n b g g e E s [ n b g g e E s s s s s s s s s s s s s s s s c / s s s s s s s s s s c / " s s s s s s s s s s s s s s s s s u u u u u u u u u e a a p p n u y O u a a a p p n O u a a a p p n O u u u u u u u u u u u u u u e o d u u u u u u u u u e o d u ; u u u u u u u u u u u u u u u u u d A d d A d d A d d d d l m s g g a t p F d r m s g g a F d r m s g g a F d d d d d d d d d d d d d d t u s d d d d d d d d t u s d d d d d d d d d d d d d d d d d " o l o o l o o l o o o o a e e c k b o e ' o c e e c k b ' o c e e c k b ' o o o o o o o o o o o o o o r / r o o o o o o o o r / r o o o o o o o o o o o o o o o o o ; l l l s = u h e l r = h = u h e l h = u h e l - c u / - c u / s s c / y o s s o s s o s y - - t E r e y e e r - i a r e y e - i a r e y e - - - - - - - - - - - - - - a e s s - - - - - - - - a e s s - - - - - - - - - - - - - - - - - e o d u u w e e w e e w e u u u i l l c = d f p u v r l c = d u v r l c = d u u u u u u u H H H H H u u r h u u u u u u u u r h u u u u u u u u u u u u u u u u u t u s m m m t t t m c a = k h = r m e c = k h = e c = k h = - / / a - / / a r / r N a a N s s N s r r s s h = t 1 e - r m h h = t 1 r m h h = t 1 r r r r r r r - - - - - r a e e l r r r r r r r r a e e s r r r r r r r r r r r r r r r r r a - c s u / - g n n g e e g e i o o e t t 1 t s m o a i t 1 t o a i t 1 t o o o o o o o u u u u u o r t i e o o o o o o o r t h e o o o o o o o o o o o o o o o o r a e o s s y i a a i b b i b n o o a i t p h d o t v t p o t v t p o o o o o o o o c - c b o o o o o o o c - c a / o o o o o o o o o o o o o o o o c u r h n g g n o o n o s t t r c p s = t i e p s t i e p s t t t t t t t r r r r r t h x / a t t t t t t t h x / r a t t t t t t t t t t t t t t t t h - / r / a u x e e x o o x o t c s s : 1 c m s : c m s : o o o o o i s a r i s e r i e e c l r p l l l a r b h e : / b a a : / b a a : / y s s s s s s o o o o o y v y r c s s s s s s y v y / c s s s s s y s s s s s s s s s s v t e i e d t p p t t l p a - a / / a ] t / / a - t / / u y y y y y y t t t t t u e s c h y y y y y y u e s a h y y y y y u e e y y y y y y y y e - c b a o o o o - - o - l m s 6 r / a s i / p s e i / p m s s s s s s m m c h i s s s s s s m m c r i s s s s s m d d s s s s s s s s m x / / ( a t r r P P P h . c a r h c p a h x c p a t t t t t t m m m m m a o i v t t t t t t a o c v t t t t t t t t t t t t t a d e e a r e u t t c c - x h r t a a c t a a c i e e e e e e y y y y y i t n v e e e e e e e i t n h e e e e e e i - - e e e e e e e e t e t c r c s o h h h h y - - ] t i - c k - r - c k n m m m m m m s s s s s n i f e m m m m m m m n i f i m m m m m m n i i m m m m m m m m i f c h c h e - - n t t a t i c r i f c k a c a e k a s c c c c c c q q q q q s c i m a c c c c c c s c i v a c c c c c s c c c c c c c c c a / o h i m a n t t n t e m e f a a g s x a g t t t t t t t l l l l l t a g a t t t t t t t t a g e t t t t t t t ' ' t t t t t t t t a u s i v p e p p g p p p ' p a c ' g e ' ] t g e a l l l l l l a / t i l l l l l l a / m i l l l l l a s s l l l l l l l l l y ' v e o - - c d d e d e o c o c t c e s c r e s l - - - - - l b a i c l b a a c l / / b t s E e m r t t t _ _ _ l r a s t s a s . a a s . l e s e s e s h h h h h l a r c a e s e s e s l a r t a e s e s r l ^ e s e s e s r r a / c n m a t c c s s - t t i s . t . a t s . a n t n t n t l l l l l s c a n t n t n t s c i / n t n t e # E n t n t n t e e s a o v a t s h h t a a y e r t . e a r a r - a a a a a a o o o o o - h h v a a a a a a - h h c v a a a a s - T x a a a a a a s s h r n i t i t t h n n s t e h o e l r c r c y b r b r b r c c c c c y i s i b r b r b r y i a i b r b r t y C a b r b r b r t t c f r i c 8 t t e _ _ t r l t r l a c h c h l t l t l t a a a a a - v t r l t l t l t - v / r l t l t a P m l t l t l t a a - h i o c a 1 p p n n e l e t y a s h i h i j e e e l l l l l p c e o t e e e a c e d t e e r a S p e e e r r c i g n a _ _ M e e m i a p E s t E i v E i v a e m g h h h h h y m r u a n r r m a u a a t r o l a f c t t v / m v a p p y t t m s s O f t i O v e O v e v e l m a g e o o o o o t " a a a a r n g r n c " a s a a r a r c c e a r f i c l " e a e s i n o o S w w l i e : F o i c F e m F e m a l a a r e a s s s s s h t g l r c g i n g h t h l r c r c n h k / r c i t l a a a m r n t r d r r Q o o i t / r c . m a m a - a s r i a r t t t t t o \ i e e c h i n g d i \ i b e c h c h g i e / c h t s a m r r \ a c t o t t t L r r m / > . c > a t > a t 1 s t i a r m n c - n h i n x d v c o n h i h i i v t g h i s - m d c c t h r u 8 _ _ k k i 1 a 6 c o t i t i . t i a d m a - - - - - - a s v i v x e a a v i v i v n e / ' i v - n d @ h h i i f a a 0 t t s _ _ t r / . o / / i c / i c 8 i c d b a n u u u u u p - e s v e m - r s v e v e x m T v e n a @ s i i c v i g l 0 e c c s t e x / G e c a e c a . c s b n d r r r r r i s r / e m a d d / e m e m a C / e m a i s c v v a e l e e 1 - - r o o i t p P t a . t a . 0 s e d o o o o o p t a m a t a a m a m a t P e m a i l c a e e - m e - n p p v n n f c p a G c . o c . o - e a o o o o o o i r a t i s r a t a t i S t a t l g a n m m s a s v e n n a / a c - / o r / o r o a r t t t t t a r c c t i c h c t i t i c o c t i g u n a a t t n e s t t r e e c y c k K y r g y r g p r c r a e h i c a b h i c i c a c / i c u n t t o i o r / c c c c t u k a E u g / u g / e c h - - - - - c g i c a - o i c a c a - k c c a n i i r c t a p p a t t s m a g Y m / 1 m / 1 n h e e e e e h e v a - c a v a - a - m e l a - c c a a i r n _ = . . g e - . 1 . . 1 . j i - e - s o r e - m - d c t a - m a a g - f c c 8 8 d d 1 e r e s e r . 1 r . 1 d " " " " " v s m s t m d m m c d a p / m m c - - e s o e h 1 0 b l e s / l e 1 3 e 1 3 k D D C G G e e a t o m a c p a s - g d c p d m - t u i 0 G = a p 6 a p 3 . p 3 . - R R R R R m r t o r o t p - s h c ' . p - a c s o n v 1 u 1 s o . s o . x o . x h O O E A A a v i r a n i - s h b l d - c s p e r d e n t s x t s x / s x / e P P A N N t i c a g c s e b o i / / c l h - r a ' m i i . / i . / k . / k a T T T i c a g e a a e r o a e e s l i b s v g ; a c c d y c d c e d c e d D D E c e - e - r / r v a r n t c i e o e i e t o . / u s / e y / e y l A A A A a s - s c b v e r d t c a e n a r c - e i r c e m e a n . a n . e T T U L L - t s e h i e r d / n n t r v e s x c n o l a r t a r t a s A A S L L s o e r i n r c . t d e e i a / a r c o s c o s s B B E t r r v v / l c r r t - b G s c h s c h s c A A R O O o a v i e p a o s a P t h i i - e S S N N r g i c m y m n i 1 t c G i v v e l E E ' a e c e a t d f c ) o k - c e e x a a M S g - e t h . e r e K s m m t s I I r C S e s i o d a n E e a a r t F F c P . - e c n / \ g d Y a t t a i h . * s r a s e s - r i i s c E E i * e v - m c - e c c c s X X v T r i m a a s l h a a e I I e T O v c c n n e a . . - a S S m O i e p a . r s r r e r T T a ' c / - g c v t e e x c S S t ' a e b s e o i i p p t h i a r i e . n c c o o r M S c r c n r p f e s a m C S a c h / v y / e s a P ; ' h i p e b a . r ; @ i v y r m i r r i C ' v e t i n c e a C R l e m h a g / h p d R E o m a o r r p o b E A c a t n c a y - A T a t i h t t s T E l i c m i e h e E h c a a v o r D o a ' n e n v D A s ' @ a m e A T t @ ' g a m r T A ' ' l e t a A B l o . i n g B A I o c p c a e A S D c a y a g a S E E a l - e r E N l h m d . m S T h o i a p a M S I o s g s y n C F s t r h d P C I t ' a b c H E ' ; t o r C A D ; " e a e H R " " r a A A B ; d t R C Y e A T s C E ' u T R d p E e e R S m r E o u S T ' s E ; e T u " r t u f t 8 f 8 C O C L O L L A L T A E T E u t u f t 8 f _ 8 u _ n u i n c i o c d o e d _ e c _ i c ; i " ; " 最後のコマンドで、archivematica-storage-serviceのユーザを作成します。ユーザ名やパスワードを指定します。 ...

2023年2月8日 · 18 分 · Nakamura

Amazon LightsailでOmeka Sの初期設定を行うscript(Easy Adminモジュールの追加)

以下の記事で紹介した「Amazon LightsailでOmeka Sの初期設定を行うscript」に対して、テーマやモジュールを簡単に追加できる「Easy Admin」を追加し、また関連ディレクトリの権限を修正したスクリプトを作成しました。 参考になりましたら幸いです。 # O # D V # s m # w u m # m # r r # i f # c [ u p h E m # c u p d h E s s # c # w u r s s s M # B E # e k g n v v m m f i a c s a o O y a s a b o O u u d # g n m u u u 変 E N R # t d O e z . 不 元 r デ t l e s s F s O t e s n s F d d M e z d d d 数 K ハ A S # i m t i o h o 要 - o か [ m ー i r s t q m r s a t o o o $ e t i E o o o A イ M I # - r e p m t m な r m ら タ e w l e w m d O a p a _ フ E O # e k h e a e フ f e あ - $ ベ < n = o = k < = o e = c a u M s h s c c c P ン = N # $ a t - k c k ォ k っ e O ー E t r a E r h p l E y t E y h h h A は o = # O の t q a c a ル o a た M ス O ] r d l - O r d = l o t e K t a A o o o T 含 m 3 # M ダ p - e - ダ m - i $ E の F o o d S F o o w A a p s d w w w H め e . # E ウ s o s s s の e s n O K 作 o = c e の o = $ c n i _ d s y m n n n = な k 2 # K ン : m / s / 削 k - d M A 成 > t a f 設 > t D a n P m : A i / い a . # A ロ / e * の . 除 a $ e E _ $ l a 定 $ B l - s A i / d n - - - h _ 3 # _ ー / k 移 h - V x K P s ( h u $ ( N h R t T n / m - R R R o s P ド g a $ 動 t s E . A A q c o l O c A o a H g i 3 m A i - O a R h _ T l a s t M a M s d l / i n . d d d e T t s M c S t P H . t t s E t E t a l m t - 3 a a a / H h - E c I m A / c - K e o h 3 . e e e b u $ K e O l T i n / e A b m i d u . 7 m m m i b V A s N を H n f h x _ i o m u b 3 . o o o t . E _ s . 削 / d o t P t n a l . . z n n n n c R P z 除 i e m r A n : g e c 7 i : : : a o S A $ i ( n x e a T a d e s o . p d d d m m I T O p も d . / - H m a m m z a a a i / O H M し e h b f / i e a / i e e e / o N E 存 x t i i c _ m g D p m m m h m . K 在 . m t l o a o i a o o o t e z A す h l n e n p n c n n n n d k i _ れ t a = f p k i o a p P ば m m s i l $ e $ $ $ c / A ) l i q g i O - l O O O s o T / l / c M y - M M M / m H ] b . d a E K E E E o e ; i c a t K M K K K m k t n t i A / A A A e a t n f a o _ O _ _ _ k - h a b n P m P P P a s e m - a _ A e A A A - / n i e s p T k T T T s r _ e a H a H H H e a " . s / - / / / l p c i s f S f m t e p r n w i - i o h a l e i o l m l d e s i a r e o e u m e c t d s d s l e s a e ) u e s / t l s d i d e o o a - w n t E n _ a a l p b s o a a y a s s A d s e d / w m v o $ i $ r D n V d B / E ) N r R A e S M l I E e O " a N ; s / e o s m / e d k o a w - n s l - o $ a V d E / R 3 S . I 3 O . N 7 . / z E i a p s y A d m i n - 3 . 3 . 7 . z i p

2022年12月24日 · 6 分 · Nakamura

nuxt3をamazon lightsailで公開する:pm2の使用

はじめに nuxt3などを用いて開発したアプリケーションについて、github pages, netlify, aws amplify, およびServerless Framework+Lambdaなどを用いてデプロイすることが多いのですが、今回はvpsを用いて公開する機会があり、その備忘録です。 参考 具体的には、Amazon Lightsailとpm2を使用します。 Amazon Lightsailインスタンスの作成 Node.jsのblueprintを選択します。 また3000番ポートを使用するので、ファイアウォールを開放しておきます。 pm2の設定 以下の記事を参考にしました。 https://it-evo.jp/blog/blog-70/ インストール s n u p d m o i s n u s t a l l p m 2 - g Nuxt3のダウンロードとビルド サンプルプログラムをダウンロードします。 s c g u d i t b / i h c t o l n m o a e n m / e i b i h t t n t a p m s i : / / / g i t h u b . c o m / n a k a m u r a 1 9 6 / n u x t 3 - p m 2 セットアップ ...

2022年12月22日 · 3 分 · Nakamura

EC2サーバセットアップ時のTODOメモ

EC2でサーバをセットアップする際のTODOメモです。 Elastic IPの付与 sudo権限のユーザ追加 s u p u u s a s d e s e o r s r a w m s d d o u d d n n a - a k G k a a m w m u h u r e r a e a l n a k a m u r a 公開鍵の設置 c m t c c v c d k o h h i h d u m m o / i c o o . w h r h d d s n o s m . . 7 6 h - e s s 0 0 / R / s s 0 0 a n h h u n a / . . t a k a s s h k a u s s o a m t h h r m u h / i u r o a z r a r u e a i t d : z h _ n e o k a d r e k _ i y a k z s m e e u y d r s _ a k e . y s s s h

2022年12月5日 · 1 分 · Nakamura

Amazon LightsailでOmeka Classicの初期設定を行うscript

Amazon LightsailでOmeka Classicの初期設定を行うscriptを作成しました。 以下の記事の「Omeka Classic版」です。 Amazon Lightsailを用いてOmeka Classicを使用する際の参考になりましたら幸いです。 # O # D V # s m # w u m # m # r r # i f # c [ u p h E m # c [ h u p d p c E s s M # B E # e k g n v v m m f i a c s a o O y a d o s a b r h O u u 変 E N R # t d O e z . 不 元 r デ t l e s s F s O t a s e s n e a F d d 数 K ハ A S # i m t i o h o 要 - o か [ m ー i r s t q m t t r s a f r o o A イ M I # - r e p m t m な r m ら タ e w l e a n w m i s _ フ E O # e k h e a e フ f e あ - $ ベ < n = o = k < b a o e x e c a P ン = N # - a t - k c k ォ k っ e O ー E t r a E a m r t h p A は o = # p の t q a c a ル o a た M ス O ] r d l - O s e d o t T 含 m 3 # ダ p - e - ダ m - i $ E の F o o d S F e w H め e . # $ ウ s o $ s $ の e $ n O K 作 o = c e の ] = = = = = = n i = な k 0 # O ン : m V s V 削 k V d M A 成 > t a f 設 > n / い a . # M ロ / e E の E 除 a E e E _ $ l a 定 l r $ $ " " - s h こ 3 # E ー / k R 移 R - R x K P s ( h u $ o o ( D o u R t o と K ド g a S 動 S $ S . A A q c o l O c o c B m t a m A i - I I V I h _ T l a s t M a t a N e f d l e _ t $ O O E O t P H . t t s E l t A k 8 a l / P h V N N R N m A / c - K h M a " e b A u E / / S . l T i n / e A o b E _ m i i T b R * . I z を H n f h x _ s i " o m t H . S h O i 削 / d o t P t t n a n c I $ t N p 除 i e m r A n : g a o O O a ( n x e a T a d e m m N M c も d . / - H m a m i / . E c し e h b f / i e a / o z K e 存 x t i i d _ m g h m i A s 在 . m t l b a o i t e p _ s す h l n e . p n c d k P れ t a = i p k o a A $ ば m m s n l $ c / T O ) l i q i i O - s O H M / l c M y / m E ] b . a E o e K ; i c t K m k A t n i A e a _ t n f o _ k / P h a n P a r A e m - _ A e T n i e p T l H _ a H e a " s / a p c s f s p r w i e l e o l s i a r e / c t d s d a e ) o t w i d n o a l n t o _ a a p b d a a / s s v s e $ w V o $ E r D R d B S ) N I A O M N E / " o ; m e k a - $ V E R S I O N . z i p

2022年10月13日 · 5 分 · Nakamura

Nuxt3をNetlifyおよびAWSにデプロイする方法の一例

概要 Nuxt3をNetlifyおよびAWSにデプロイする方法の一例の備忘録です。 以下、構築例です。 Netlify app.vue https://nuxt3-nakamura196.netlify.app/ server/api/hello.ts https://nuxt3-nakamura196.netlify.app/api/hello AWS(Serverless) app.vue https://nuxt3.aws.ldas.jp/ server/api/hello.ts https://nuxt3.aws.ldas.jp/api/hello ソースコードは以下です。 https://github.com/nakamura196/nuxt3 以下、それぞれについて説明します。 Netlify 以下の記事を参考にすることで、BFFを含むデプロイができました。 https://blog.cloud-acct.com/posts/nuxt3-netlify-deploy/ AWS(Serverless) Lambda Functions URLを使用する方法は以下の記事が参考になりました。 https://qiita.com/P3117/items/e2893804c3161a161a49 一方、今回はAPI Gatewayを使用する方法を示します。以下の記事が参考になりました。 https://stackoverflow.com/questions/73862456/nuxt-3-in-aws-lambda-with-serverless-framework 上記を参考にすることで、以下のようにデプロイすることができました。 https://9f4jl2wn81.execute-api.us-east-1.amazonaws.com/ こちらについて、カスタムドメインの設定を行います。以下、API Gatewayのみを使用する場合と、CloudFrontを用いる場合のそれぞれについて説明します。 API Gatewayのみ API Gatewayの「カスタムドメイン名」から、ドメイン名を作成します。 その後、APIマッピングから、上述のAPIを選択します。 そして、Route 53でレコードを追加します。 これにより、以下のように、カスタムドメインを用いて公開することができます。 https://nuxt3-apigateway.aws.ldas.jp/ CloudFrontを用いる場合 CloudFrontのディストリビューションの作成において、オリジンドメインにAPI GatewayのURLを入力します。 「デフォルトのキャッシュビヘイビア」の「ビューワー」では、「Redirect HTTP to HTTPS」を選択しました。 「設定」において、代替ドメイン名およびカスタムSSL証明書を指定します。 最後に、Route 53でCloudFrontのドメイン名を用いたレコード追加を行います。 これにより、以下のように、カスタムドメインを用いた公開を行うことができました。 https://nuxt3.aws.ldas.jp/ まとめ 他にもより良い方法があるかと思いますが、Nuxt3のデプロイに関して参考になりましたら幸いです。 またSPAやSSGとしてデプロイする場合には、GitHub Pagesを利用する方法もあるかと思います。 用途に応じて使い分けていきたいと思います。

2022年10月11日 · 1 分 · Nakamura

Amazon LightsailでOmeka Sの初期設定を行うscript

Amazon LightsailでOmeka Sの初期設定を行うscriptを作成しました。 Amazon Lightsailを用いてOmeka Sを使用する際の参考になりましたら幸いです。 # O # D V # s m # w u m # m # r r # i f # c [ u p h E m # c u p d h E s s M # B E # e k g n v v m m f i a c s a o O y a s a b o O u u 変 E N R # t d O e z . 不 元 r デ t l e s s F s O t e s n s F d d 数 K ハ A S # i m t i o h o 要 - o か [ m ー i r s t q m r s a t o o A イ M I # - r e p m t m な r m ら タ e w l e w m _ フ E O # e k h e a e フ f e あ - $ ベ < n = o = k < = o e = c a P ン = N # $ a t - k c k ォ k っ e O ー E t r a E r h p A は o = # O の t q a c a ル o a た M ス O ] r d l - O r d = l o t T 含 m 3 # M ダ p - e - ダ m - i $ E の F o o d S F o o w H め e . # E ウ s o s s s の e s n O K 作 o = c e の o = $ c n i = な k 2 # K ン : m / s / 削 k - d M A 成 > t a f 設 > t D a n / い a . # A ロ / e * の . 除 a $ e E _ $ l a 定 $ B l - s h _ 3 # _ ー / k 移 h - V x K P s ( h u $ ( N h R t o s P ド g a $ 動 t s E . A A q c o l O c A o a m A i - O a R h _ T l a s t M a M s d l e T t s M c S t P H . t t s E t E t a l / H h - E c I m A / c - K e b u $ K e O l T i n / e A b m i i b V A s N を H n f h x _ i o m t . E _ s . 削 / d o t P t n a n c R P z 除 i e m r A n : g a o S A $ i ( n x e a T a d e m m I T O p も d . / - H m a m i / O H M し e h b f / i e a / o N E 存 x t i i c _ m g h m . K 在 . m t l o a o i t e z A す h l n e n p n c d k i _ れ t a = f p k o a p P ば m m s i l $ c / A ) l i q g i O - s o T / l / c M y / m H ] b . d a E o e ; i c a t K m k t n t i A e a t n f a o _ k - h a b n P a s e m - a _ A - / n i e s p T s r _ e a H e a " . s / l p c i s f e p r n w i a l e i o l s i a r e e c t d s s a e ) / t d i d o o a w n t n _ a l p b o a a a s s d s e / w v o $ $ r D V d B E ) N R A S M I E O " N ; / o m e k a - s - $ V E R S I O N . z i p

2022年9月9日 · 4 分 · Nakamura

AWS EC2を用いたVirtuoso RDFストアの構築

はじめに AWS EC2を用いたVirtuoso RDFストアの構築に関する備忘録です。独自ドメイン設定、HTTPS接続、Snorqlの設置、までを行います。 本記事以外にも、Virtuoso構築に関する有益な記事が多数存在しています。参考にしてください。 https://midoriit.com/2014/04/rdfストア環境構築virtuoso編1.html https://qiita.com/mirkohm/items/30991fec120541888acd https://zenn.dev/ningensei848/articles/virtuoso_on_gcp_faster_with_cos 前提 ACM Certificateは作成済みとします。以下の記事などを参考にしてください。 https://dev.classmethod.jp/articles/specification-elb-setting/#toc-3 EC2 まずEC2のインスタンスを作成します。 Amazon Linuxを選択し、インスタンスタイプはt2.microとしました。 ネットワーク設定については、「セキュリティグループを作成する」を選択し、「HTTPSトラフィックを許可する」と「HTTPトラフィックを許可する」の両方にチェックを入れます(以下の図では、後者にのみチェックが入っている状態ですのでご注意ください)。 インスタンスの状態が「実行中」になったら、画面右上の「接続」ボタンを押して、サーバに接続します。 接続後、以下を実行して、apacheサーバを立ち上げておきます。 s c s < s s u d u p u u d d > d d o o t o o v e y a v s s s u r i t y y m / < s s w i / t t i w n p e e n w d > m m s / e c c t h x t t a t . l l l m h l l t s e m t n h l a a t r b t t l p e d h t h - t t y p t d p d ELB作成 「ロードバランシング」の「ターゲットグループ」を選択します。 ...

2022年8月16日 · 6 分 · Nakamura

Hugging FaceモデルをAWS Lambdaでホスティングし、サーバーレス推論を実現する

概要 以下の記事を参考に、Hugging FaceモデルをAWS Lambdaでホスティングし、サーバーレス推論を行った備忘録です。 https://aws.amazon.com/jp/blogs/compute/hosting-hugging-face-models-on-aws-lambda/ また、Lambdaの関数URLとCloudFrontを用いたAPIの提供までを行います。 Hugging FaceモデルをAWS Lambdaでホスティング 準備 この点については冒頭でも紹介した、以下のドキュメントを参考にしています。 https://aws.amazon.com/jp/blogs/compute/hosting-hugging-face-models-on-aws-lambda/ まず以下のコマンドを実行します。venvという仮想環境を作成していますが、この点は必須ではないはずです。 # g c # p s # p # c C i d y o i d l t 仮 t u I p B k o z 想 h r n o n c e 環 o c s i o b e l r 境 n e t n t o o o の a s s o t n - 作 - v l t t t h e a 成 m e l a r s e d と n l a t h m 有 v v t l p r p t i 効 e / h a r t n 化 n b e - t p o p i v i r h j s s n r e e : t v / e r c / r e a q e C t / a n c u q D g t v t i u K t i i i r i . o t o v e r h n a d e T y u - t m h o b i e d e i u . n e n s r c f p t o e e s c d m r n . o e / e d t m a n e x m e w c n t a l s e c n o - - i d p s w e m a i s p e m t : r n p h o t l - v e a i e s w s n / s i z - o i e l n r r a s o o m n - b t m a d h e d a e n m - t i f i n o n i r i s - t t h i r u a a g l t g i i r o n e n g s - - o i f u n a r f c c e e e r s e n n c e e e - d w e i d t h b - y a w t s h - e l a C m D b K d a t - o f o p r e - r h f u o g r g m i n d g e - p f l a o c y e m . e g n i t t s : 注意 ドキュメントでは、この後にcdk deployをするように記載されています。その結果、deployすることができ、lambdaのテストも実行できました。しかし、後述するlambdaの関数URLを発行して利用した際に、いくつかエラーが発生しました。そのため、次の修正を行います。 ...

2022年7月17日 · 7 分 · Nakamura

AWS Copilotを用いたOmeka Sデータの定期バックアップ

概要 先日、Omeka Sのデータをダウンロードするプログラムを作成しました。 今回は、AWS Copilotを使用して、上記のプログラムを定期的に実行してみます。 AWS Copilotのインストール 以下を参考にしてください。 https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/AWS_Copilot.html ファイルの準備 任意の場所で、Dockerfile、main.sh、.envの3ファイルを作成します。 Dockerfile F C C R O M O P D M Y s p h y . t s m h h a o i n . n : . 3 s h main.sh s e # e d d # i f # g g # c p p # c s # o m c c c # g g g g g g # c r r e x x i i f i i i d i i d h d k d p p i i i i i i d m m t p O p r r フ r r c t t r p p 実 c i d g t t t t t t 後 o m o _ _ ォ [ m m l e $ 行 s m o r i $ - - i 処 - - - r e r t d ル o c c q d i i r a p = r o r r t s a c c c p 理 r r e t k t o a ダ - - - n l l u i n n c i y . d t d o o o u f f a o t が d r r e o o i r s s n . - i a d n n m s o r l a 存 f f n n r _ t t . / p r t f f m h $ $ u S e = s 在 $ e e e t a a s . u . i i i d d t か p t e し d $ $ m o l l h . $ s g g t i i p ら o o t た i d d e o l l / o r r u デ _ o = ら r i i - - n l $ d / u u - _ _ t ー t l d _ r r d d t - d i $ $ s s m t d _ タ o a t _ _ e e s - r i r d d e e o a d を o t o t d p p . u r i i r r " o t i ダ l a o o a t t t p r _ r r . . u l a r ウ = s l o t h h x g e d _ _ e n p s = ン h e l a t r q a t t m a d e . ロ t t ] s 1 1 a u t o o a m a t . ー t ; e d i a o o i e t / ド p t $ $ e r s l l l e d す s t r r e e / / " " o る : h e e p m t d d " $ c プ / e p p i e / a o $ n s ロ / n o o p n $ t c e a グ g _ _ t s a s m m ラ i t d s u a e ム t o a . b . . i " h o t t d l u l a x i " b s t r . $ e c d t o i m r $ / _ d n t i a o r k o _ a l d m a u t r a a s 1 e 9 t 6 / o m e k a s _ b a c k u p . g i t .env a g u e d p i s m i i t e a r _ h r i n u u n l a r b a = m l _ m n e = u e a = h r = k d t l n a e t = a m v p h k u s t a r : t m a / p u @ / s r e d : a x e / a m < p o 個 l m 人 e e ア . k ク o a セ r . ス g o ト r ー g ク / ン o > m @ e g k i a t - h s u - b s . a c n o d m b < x ユ / ー a ザ p 名 i > / < リ ポ ジ ト リ 名 > . g i t 以下、説明です。 ...

2022年6月24日 · 11 分 · Nakamura