シナプス技術者ブログ

シナプスの技術者公式ブログ。インターネットで、鹿児島の毎日を笑顔にします。

コーポレートサイトの構成と技術選定理由

はじめまして。
シナプスの技術部システム開発課の小園と申します。
シナプスでは、先日コーポレートサイト(https://corp.synapse.jp/)を公開しました。
お客様にサービスとして提供する場合には、普段利用している実績のある技術を採用する事が多いのですが、今回はこれまでシナプスでは採用してこなかった技術を積極的に使って開発しました。
この記事では、コーポレートサイトのサーバ構成やOS/アプリケーション構成などの情報と、その中で使われている技術の候補と選定された理由、されなかった理由を書きたいと思います。

記事に先立って、それぞれの製品は素晴らしいものであり、選定されなかったのはシナプス側に起因する理由であり、その製品に問題がある訳では無い事は申し上げておきます。

サーバ構成

サーバは自社にデータセンターがあり、そこでの運用です。
弊社データセンターを運用監視しているネットワーク課の方に用意していただきました。

サーバ構成は以下のようになります。

  • CPU 2Core (Xeon E3120)
  • Mem 2GB (DDR2, ECC)
  • HDD 500GB (RAID1)

ある程度詳しい方は判るかもしれませんが、結構古いサーバです。
データセンターで第二の人生を待っていた余っていたサーバです。

仮想マシンでは無く、物理マシンなのは逆に新鮮に感じました。

OS/アプリケーション構成

OS/アプリケーションは以下を利用しています。

アプリケーション構成

簡単なアプリケーション構成を説明します。

概要図

f:id:oceandepthz:20190712140958p:plain

シーケンス図

f:id:oceandepthz:20190725165938p:plain

  • H2Oは2個のドメインをホストしています。
    • corp.synapse.jp
    • corp-resource.synapse.jp
  • corp.synapse.jp
    • リバースプロキシになっており、同一サーバ内の Node.js(Nuxt.js)へ流れていきます。
    • Nuxt.jsはSSR(Server Side Rendering)で動いています。
    • コンテンツは、corp-resource.synapse.jp より WP REST API で取得しています。
  • corp-resource.synapse.jp
    • WordPress を Headless CMS として使っています。
    • Contentful を使うという案もありましたが、自分たちでやってみようという事で、WordPress での運用となりました。

技術選定について

OSとWEBサーバの技術選定について

OS

Ubuntu 19.04、CentOS 7Arch Linux が候補でした。
シナプスでは、標準的なLinux OSとしてCentOS 7を採用しています。

選定結果

  • 採用

    • Ubuntu 19.04
      • 今まであまり利用してこなかったが、将来の事を考慮してDebian系のOSも扱いたいと考えたため。
      • Debianでは無く、Ubuntuを選択した理由はサーバOSとしてのシェアより選択されました。
  • 不採用

    • CentOS 7
      • 既に利用しているため、今、採用をしてもチャレンジが少ないと判断したため。
      • CentOS 8楽しみですね。
    • Arch Linux
      • 面白いOSとは思ったが、今後、シナプスが扱う見込みが無かったため。
      • ローリングアップデートは安定運用できるか不安があったため。
      • 個人的に気になるLinux OS 1位です。

WEBサーバ

H2O、nginx が候補でした。
WEBサーバの提供条件としては、以下がありました。

選定結果

  • 採用
    • H2O
      • 今まで触ってみた事が無く、面白そうだったため。
      • ほとんどの設定がデフォルトで適切なものが選択されていると感じました。そのため、設定が少なく済んだと思います。
      • Zabbixからの監視をどうすれば良いのか検討中。(statusの設定をすれば出来そう。)
  • 不採用
    • nginx
      • 候補にH2Oがいたから。(H2Oへの興味が勝ったとしか言いようがない。)
      • シナプス内ではApache HTTP Serverの利用が多いですが、個人的には好きです。

最後に

運用が始まったばかりで、まだまだ改善すべき項目があります。
(監視の強化、CSP導入、Qualys SSL Labs オール100など…)
少しづつですが、改善して良いサイトにしていければと思います。