·조회수 179

1. 서버에 가상 호스트를 설정하여 여러 도메인을 한 대의 서버에서 운영할 수 있습니다. 2. 컨테이너 기술을 활용하여 각 서비스를 격리된 환경에서 운영할 수 있습니다. 3. 서버 리버스 프록시를 이용하여 서버에 들어오는 요청을 각 서비스로 라우팅할 수 있습니다. 4. 서버의 리소스를 효율적으로 활용하기 위해 서비스 간의 우선순위를 설정할 수 있습니다.

はじめに

インディーハッカーとして複数のサービスを運営し、収益化を試みていますが、AWSサーバーの利用料金が負担になっていました。より安価な代替案を探している中、家で使用していないゲーム用PCをサーバーとして活用してみることにしました。

このPCは約5年前に、20万ウォン程度かけて購入した機器で、同じ仕様をAWSで使用するには最低でも月に60万ウォン以上かかります。さらに、私が運営しているサービスのほとんどはユーザーがいないため、トラフィックをほとんど使用しません。それならば、このサーバーでDockerを活用して複数のサービスを効率的に運用できないか?

構成

段階的にアプローチすると理解しやすいです。まず、最も基本的な構成を見てみましょう。

1. UbuntuサーバーでDockerを使用して複数のサービスを実行

  • Ubuntuサーバーで各サービスをDockerコンテナーで実行します。

  • Nginxを使用してトラフィックを適切に分散します。

  • これだけでも外部アクセスなしで社内ネットワークレベルのサービス運用が可能です。

2. Nginxを活用したサービスの区別

  • Nginxの設定ファイルでserver_nameを使用して各サービスを分離すると、トラフィックを適切なDockerコンテナーにルーティングできます。

  • 設定例:

3. 外部からIPでアクセス可能に設定

  • 外部から直接サーバーにアクセスするには公開IPをサーバーに接続する必要があります。
  • ルーターを使用する場合、ポートフォワーディングを設定して外部トラフィックをサーバーに誘導します。
  • 設定例: ルーターで80、443ポートをサーバーにフォワーディング

4. ドメイン接続 (AWS Route 53などの活用)

  • AWS Route 53などのサービスを使用すると、IPの代わりにドメインアドレスを使用できます。
  • DNS設定でAレコードを自宅ネットワークの公開IPに設定するだけです。

5. CNAMEを活用したIP変更対応

  • 固定IPがない場合、CNAMEレコードを使用するとIPの変更に簡単に対応できます。
  • 例えば、api.example.commyserver.example.com(固定ドメイン)に接続すると、実際のIP変更時にはmyserver.example.comのAレコードだけを変更すれば済みます。

6. HTTPS適用 (Let’s Encryptの活用)

  • Let’s Encryptを使用すると無料でSSL証明書を取得できます。

  • Certbotを使用して自動更新を設定すると、別途費用なしで安全なHTTPS環境を維持できます。

  • 基本的なSSL設定例:

    server {
        listen 443 ssl;
        server_name example.com;
        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    }
    

結論

ここで全ての詳細設定を取り上げてはいませんが、コスト削減のためにローカルPCをサーバーとして活用する方法が十分に可能であることを示したかったです。

AWSは拡張性と安定性に優れていますが、初期費用が大きいです。一方でローカルPCを活用するとコストを節約しながら複数のサービスを直接運営できます。

この方法は個人プロジェクトや小規模サービスの運営に適しています。最初はこのように運営して、トラフィックが増加し収益が確保されたらAWSなどのクラウド環境に拡張するのが良い戦略だと思います。

김지식
김지식
웹, 앱 개발자입니다.

댓글

댓글을 불러오는 중...