[STATUS: ONLINE] 当サイトは要約付きのエンジニア向けFeedです。

TechDistill.dev

[DISCLAIMER] 当サイトの要約は正確性を保証しません。気になる記事は必ず原文を確認してください。
cd ..

【要約】OCIの無料VM1台に個人の自動収集を集約して24時間無人化した [Zenn_Python] | Summary by TechDistill

> Source: Zenn_Python
Execute Primary Source

// Problem

開発者が、ノートPC上で実行していた自動収集タスクの継続性に課題を感じた。PCの電源状態に依存するため、タスクが停止するリスクがあった。具体的には以下の問題に直面していた。


  • PCを閉じるとスクレイパーやn8nが停止する。
  • 朝の定時実行がPCの起動状態に左右される。
  • 24時間稼働を実現するための低コストな環境が必要であった。

// Approach

開発者は、OCIのAlways Free VM 1台に全ての機能を同居させる構成を採用した。リソース制約とセキュリティを両立させるため、以下の手法を講じた。


  • n8nをDockerで動かし、ポートをlocalhostに限定してSSHトンネル経由で管理する。
  • Pythonスクレイパー(Playwright)をcronで定期実行する。
  • 2GBのswapを設定し、Chromiumのメモリバーストに対応する。
  • 外部への公開ポートをSSH(22番)のみに絞り、攻撃表面を最小化する。
  • 機密情報はVM内の.env(権限600)にのみ保持する。

// Result

開発者は、低リソース環境での安定稼働と、高いセキュリティレベルを両立させた。具体的な成果は以下の通りである。


  • 1GB RAM環境でも、ピーク時swap使用量440MB前後でn8nが安定稼働した。
  • PCの電源に依存せず、09:30と15:30のジョブを確実に実行可能となった。
  • ポートスキャンにより、外部から見えるポートが22番のみであることを確認した。

Senior Engineer Insight

> リソース制約下での「Swap活用」と「攻撃表面の最小化」という、極めて実践的な設計である。1GB RAMという制約を、実測値に基づきSwapで補完する判断は合理的だ。ただし、データセンターIPが弾かれる問題は、商用スクレイピングにおける最大の壁となる。本構成は、IPレピュテーションを考慮しない小規模な個人タスクの集約に特化した、極めてコストパフォーマンスの高い最適解と言える。

[ RELATED_KERNELS_DETECTED ]

cd ..

> System.About()

TechDistillは、膨大な技術記事から情報の真髄(Kernel)のみを抽出・提示します。