> For the complete documentation index, see [llms.txt](https://livlog-llc.gitbook.io/engineering-handbook/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://livlog-llc.gitbook.io/engineering-handbook/di-er-bu-ji-shu-ling-yu/12-infrastructure.md).

# 12. インフラ・公開環境

リブログでは、サーバーサイドアプリケーション、静的サイト、LINE Bot、モバイルアプリなど、プロダクトの実行形態に応じて公開環境を使い分けます。

本番のホスト名、クラウド構成、接続先、認証情報などの詳細は、公開Handbookではなく各プロダクトの運用文書で管理します。

## 基本方針

* プロダクトを独立して公開・更新できる構成にする
* 小さく公開でき、継続して保守できる環境を選ぶ
* 秘密情報をソースコードや静的ファイルへ含めない
* デプロイ、データ更新、ロールバックの手順を明確にする
* 外部サービスへの依存、制限、停止時の影響を把握する
* ログ、バックアップ、監視の必要範囲をプロダクトごとに決める

## サーバーサイドアプリケーション

Spring Boot、Micronaut、Javalin、Servlet / Restletのアプリケーションは、Tomcatを含むJavaの実行環境を前提とする構成が中心です。

WARとして外部Servletコンテナへ配置するものと、フレームワークの実行形式を利用するものがあります。プロダクトごとに、Javaのバージョン、起動方法、ポート、環境変数、ログ出力、停止・再起動方法を管理します。

## 静的ホスティング

静的HTML、JavaScript、GeoJSONなどで構成できるプロダクトは、NetlifyやGitHub Pagesなどの静的ホスティングで公開できます。水のみち散策ではNetlifyを利用しています。

静的公開では、次を確認します。

* ビルドが必要か、ファイルをそのまま配信するか
* 公開ディレクトリとベースURL
* 独自ドメインとHTTPS
* PWAのService Workerとキャッシュ更新
* GeoJSON、CSV、画像などの配信容量
* ブラウザへ公開してよい設定だけが含まれているか

## モバイル実行環境

MonacaとApache Cordovaを利用するプロダクトでは、Web資産をモバイルアプリとして実行します。端末APIへのアクセスにはプラグインを利用します。

Web版とは別に、対象OS、アプリ署名、権限、プラグイン互換性、ストア公開、ビルド環境を管理する必要があります。

## 外部サービス

アプリケーションは、次のような外部サービスへ接続します。

* OpenAIなどの生成AI API
* LINE Messaging API
* Google Maps関連API / OpenStreetMap
* Flickr / PhotoPrism
* Amazon S3
* 交通、駅、位置情報、座標変換に関するAPI
* 国や自治体が公開するオープンデータ

APIキーや接続先は環境変数や実行環境の設定として分離します。利用上限、料金、利用規約、障害、仕様変更、データの保存可否も確認します。

## 運用で確認すること

* デプロイとロールバックの手順
* ドメインとSSL証明書の期限
* Java、Servletコンテナ、依存ライブラリの更新
* 外部APIの仕様、認証、利用上限
* データとファイルのバックアップ
* エラーログ、Sentryなどの通知、死活確認
* バッチとデータ更新の最終実行日時
* PWAキャッシュやモバイルアプリの更新経路

プロダクトごとの公開状況は、[デプロイ・運用一覧](/engineering-handbook/riburoguno/5-development-operations/deployment-operations.md)で管理します。

## 今後の課題

* デプロイ・運用一覧を実際の構成に合わせて継続更新する
* Javaアプリケーションの配置・再起動手順を整理する
* 静的サイト、PWA、モバイルアプリの更新手順を標準化する
* ログ、監視、通知、バックアップの必要範囲を整理する
* 外部サービス障害時の縮退動作を整理する


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://livlog-llc.gitbook.io/engineering-handbook/di-er-bu-ji-shu-ling-yu/12-infrastructure.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
