7 ポイント 投稿者 GN⁺ 2023-07-17 | 1件のコメント | WhatsAppで共有
  • サーバーおよびインターネットインフラ運用のための筆者の構成説明
  • クラウドソリューションの代わりに、仮想マシンまたは物理サーバー上でサーバーソフトウェアを実行することを好む
  • 筆者はサービスに DigitalOcean の VM(仮想マシン)を使用し、Debian 10 を実行している
  • サーバーソフトウェアは Rust で書かれており、1つのバイナリファイルにコンパイルされる
  • サーバー起動時にバイナリファイルが起動するように systemd を使用
  • データベースが必要なプログラムは、冗長バックアップソリューションを備えた SQLite を使用
  • すべてのサーバーは、TLS 終端と静的ファイル配信のために nginx の背後で動作
  • 構成はシンプルで堅牢であり、最小限のメンテナンスしか必要としない
  • Unix のユーザーアカウントによる分離を通じて、同一の VM 上で複数のサービスを実行可能
  • 新しいプロジェクトの設定は、新規ユーザーの作成、nginx 仮想ホストの追加、systemd ユニットの追加、およびデプロイスクリプトの実行で構成される
  • インフラの変更はゆっくり行われ、安定性と予測可能性を提供する
  • 筆者は、この記事を書くよう励ましてくれた Julia Evans に感謝を表している

1件のコメント

 
GN⁺ 2023-07-17
Hacker Newsの意見
  • HTTPトリガーのクラウド関数は、サーバー管理を簡素化し、複雑さを減らす人気の選択肢です。
  • 各サービスを固有のUnixユーザーアカウントで実行することは、分離性とセキュリティを提供します。
  • systemdのDynamicUser機能を使うと、設定プロセスを簡略化し、時間を節約できます。
  • 多くの開発者は、個人サイトやプロジェクトのWebサイトにLinode VMとDebian GNU/Linuxを使用しています。
  • Common Lispは、このような構成でソフトウェアを書く際によく選ばれる言語です。
  • Nginxは、リバースプロキシおよび静的ファイル配信によく使われます。
  • Dockerコンテナとdocker-composeは、サービス実行の代替オプションです。
  • フェイルオーバーと稼働時間は、本番環境における重要な検討事項です。
  • バックアップやファイアウォールルール、鍵ベースのSSH認証のようなセキュリティ対策が一般的に実装されます。
  • デプロイスクリプトとバージョン管理は、アプリの更新とロールバックを管理するのに役立ちます。
  • 環境変数、ファイルオープン数の制限、ロギング設定は、サービス構成における重要な検討事項です。
  • PostgreSQL、NGINX、Redis、Node.jsは、よく使われるソフトウェア構成要素です。
  • Dokkuは、デプロイ管理やプラグイン追加のための人気ツールです。
  • 一部の開発者は、単一サーバーと標準的なLinuxユーザーアカウントを使う、よりシンプルな構成を好みます。
  • 複雑さは不安定さやダウンタイムにつながる可能性があるため、特別な複雑性が必要でない限り、簡潔さが好まれることが多いです。