Kuroco利用料の最適化
Kuroco利用料が高くなった時に、効果的に費用を削減するための手順を説明します。以下の流れで対策を実施することで、利用料を最適化できます。
利用料を確認する
まず、現在の利用状況と費用内訳を確認します。
確認手順
- [環境設定] -> [利用状況]をクリック
- 「管理サイト全体の費用」で項目別の費用を確認
- 「コストチャート」で費用の推移を確認
(定額契約の場合、コストチャートは表示されません。) - 「日別利用量」で詳細な利用状況を確認
主要な費用項目
日別利用量では以下の項目毎に利用料が確認できます。
それぞれの項目に対して、費用削減の例を紹介しますので、参考に調整をしてください。
- キャッシュされたAPIリクエスト
- APIリクエスト
- API転送量
- API追加処理時間
- KurocoFront転送量
- KurocoFiles転送量
- メール
- AI処理ユニット
- バッチ処理時間
- DBファイル容量
- ファイル容量
- KurocoFrontファイル容量
- ログ容量
- バックアップファイル容量
日別利用量の「ダウンロードする」ボタンからCSVをダウンロードして、詳細な分析が可能です。
Kuroco利用料の最適化を行う
キャッシュ比率を上げる
キャッシュされたAPIリクエストは通常のAPIリクエストより安価なため、Kuroco利用料の削減にはキャッシュ比率の向上が重要です。
Cookie認証を静的アクセストークンに変更
セッションごとにキャッシュが作成されるCookieに対して、静的アクセストークンはトークン毎にキャッシュが作成されるため、セキュリティを静的アクセストークンに変更することでキャッシュ比率の改善が見込めます。
認証が不要なエンドポイントは静的アクセストークンを利用することを検討してください。
フロントエンド側の調整も必要になります。
APIエンドポイントのキャッシュ設定
エンドポイントにキャッシュの設定をしていない場合は設定をお願いいたします。
Kurocoでは1日や1週間といった設定をお勧めしておりますが、コンテンツが更新された際に自動でキャッシュがクリアされる仕組みがございますので、長く設定しても問題にはなりにくいです。
キャッシュの削除されないエンドポイントを作成する。
Kurocoではデータを最新に保つため、コンテンツの更新があった際に自動でキャッシュをクリアする仕組みがございます。
Topics::list
の代わりに、キャッシュのクリアがされないApi::request_api
のエンドポイントなどを利用することでキャッシュ比率の改善が可能な場合があります。
キャッシュクリアのタイミングや範囲をご自身で設定する必要があることに注意してください。
APIリクエストを減らす
SSG(Static Site Generation)の活用
サイトのレンダリング方式をSSGにすると、APIを利用したデータの取得がデプロイ時のみになるため、一般的にはAPIのリクエスト数が減ることが多いです。
クライアントサイドからリクエストを送るページはAPIリクエスト数の削減になりません。
また、1日当たりのデプロイ回数やPV数によってはAPIリクエスト数が減らないこともございます。
事前に試算することが重要です。
内部API呼び出しの最適化
{api_internal}
のSmartyプラグインはネットワーク経由のリクエストになるため、APIリクエスト数にカウントされます。
direct=true
の設定をしたり、{api_method}
のSmartyプラグインに置き換える事でAPIリクエスト数の削減が可能です。
API呼び出しの最適化
ページ毎にリクエストを送ってデータの取得をしているAPIはフロントエンドのページ数が増えるとリクエスト数も増加します。
ページ毎ではなく、事前にデータを取得してからページの生成をするように設計すると、APIリクエスト数を削減できる場合があります。
例えば、Topics::details
のリクエスト数を減らすためにTopics::list
で取得するケースなどが考えられます。
ただし、APIのリクエスト数を減らすために一度に大量のデータを取得すると、レスポンスに時間がかかり、コンピューティング費用がかかる場合があります。 APIレスポンスの件数は、1回あたり 20件から200件程度 にとどめることをお勧めします。 また、後処理で必要な項目を絞ることで、処理速度が向上する場合があります。その場合は、1,000件程度のデータを一括で取得することも選択肢となります。
不要なAPIの削除
- フロントエンドから不要なAPI呼び出しがないか確認してください。
API転送量を減らす
後処理で出力許可リストを設定する
API転送量を減らすには、エンドポイントのレスポンスサイズを小さくする必要があります。 エンドポイントの後処理で出力許可リストを設定し、必要な項目のみレスポンスさせることは、レスポンス容量を減らし、API転送量の削減に効果があります。
KurocoFront転送量を減らす
404ページの最適化
ボットやクローラーがURLを予想して巡回することで、存在しないURLにアクセスされることがありますが、 この場合でもKurocoFrontが404のページを表示するためにCDN転送量が発生します。
存在しないページへのアクセス数
×404ページの容量
の分だけCDN転送量が発生することになりますので、
404を始めとしたエラーページはできるだけ軽量に設計すると、CDN転送量の削減になります。
KurocoFiles転送量を減らす
画像の動的変換で適切な画像サイズでCDNに記録する
動的変換の機能を利用すると、画像の大きさや品質などを動的に変更し、変更した内容でCDNキャッシュを残します。 適切な変換を行った画像に対してリクエスト・読込を行う事で、無駄に大きな画像のCDN読込を防止し、CDN転送量の削減を図ります。
DBファイル容量を減らす
更新履歴の削除
コンテンツ定義編集の詳細設定で、更新履歴を残さないを有効にすると、過去の更新履歴は削除され、以降の更新で更新履歴が残らなくなります。 更新履歴が不要な場合は有効にするとDBファイル容量の削減に効果があります。
削除された更新履歴は復元できません。
ファイル容量を減らす
ファイルサイズの最適化
動的変換の機能で、画像の大きさや品質などを動的に変更して適切に利用していても、ファイル容量の項目には元ファイルの容量分の利用料が課金されます。
元画像の容量が必要以上に大きい場合は、調整した画像をKurocoFilesに設置することでファイル容量の削減が可能です。
KurocoFrontファイル容量を減らす
90日以上前のファイル削除設定
KurocoFrontはコミットハッシュごとにファイルを保管しますので、古いファイルは自動で削除をする設定を有効化します。
- [環境設定] → [KurocoFront設定]
- 「90日以上前のファイルを削除する」を有効化
画像等をKurocoFilesに移動
KurocoFrontはデプロイのファイルを保管し、「90日以上前の履歴を削除する」の設定をしても90日間は削除されません。
そのため、画像等の静的ファイルもデプロイのたびにKurocoFrontに溜まっていき、ストレージ料金が余計にかかります。
静的な画像やファイルはKurocoFilesを利用することで、KurocoFront容量の削減に効果があります。
バックアップファイル容量を減らす
不要なバックアップを削除する
[環境設定]->[バックアップ]に不要なバックアップファイルがある場合は削除をしてください。
{backup}
,{backup_delete}
のSmartyプラグインで自動的にバックアップを追加・削除するバッチ処理を作成するのも有効です。
関連ドキュメント
サポート
お探しのページは見つかりましたか?解決しない場合は、問い合わせフォームからお問い合わせいただくか、Slackコミュニティにご参加ください。