ハードウェアからサーバ・アプリまでワンストップで開発

脱クラウド計画(1)

  SBC

mayumi

脱クラウド計画(0)の続きで、クラウドに置く必要性のないサービスを社内のサーバーにお引越しさせるというお話です。
理由は脱クラウド計画(0)をご参照ください。

概要

EC2で運用中の自社サービス3つと、会社WEBサイト、会社WEBサイトに関する社内サービス等を社内サーバーで管理します。

移行前

対象となるEC2は3つで、RDSが1つです。

移行後

移行前のAWS上で稼働していたサービスやWEBサイトが社内サーバーに配置してある状態です。
移行後は、EC2上のNginxでリバースプロキシを構築し、受け付けたアクセスをVPN内のサーバーに転送します。

社内サーバーのハードウェア選定

使用中のEC2のモデルはA1.largeです。
A1.largeのスペックはCPUが2、メモリが4GiBです。

Amazon EC2 A1 インスタンス

今のEC2のスペックだと、Raspberry pi 4で十分そうです。
社内にある通常のRaspberry pi 4は別の用途に使用しているため、先日ご紹介した検証中のRaspberry pi CM4搭載のReTerminalでサーバーを構成しようと思います。

3つのインスタンスで運用していたものを、1つのサーバーで動かすと負荷の面で厳しいかもしれませんが、様子をみながら対処していこうと思います。

ハードウェア構成

サーバー本体:Reterminal
ディスク: HDD(3TB)×2台 用途:メイン用、バックアップ用

内部構成

ReTerminal内のRaspberry pi CM4には内蔵フラッシュが搭載されています。しかし、内蔵フラッシュは耐久性の面で不安があるため、/(ルート)や/home等主要なものはメインのHDD上に構築しました。
内蔵フラッシュには/bootだけを残しました。

/dataはデータベースの実際のデータを格納するスペースです。

バックアップのHDDはパーティションは切らずにメインHDDの内容のバックアップに使用します。

OS

ReTerminalには最初から32bit 版Raspberry pi OS が搭載されています。
これを 64bit版Raspberry pi OSにします。64bitにしておきたかった理由は、32bit版Raspberry pi OSではインストールできるPostgreSQLが古かったためです。
Linux downloads (Debian)

ReTerminalのOSの変更は下記のリンク先を参考にしました。
Flash Raspberry Pi OS/ 64-bit Ubuntu OS or Other OS to eMMC

障害(ディスク故障)対策

今回の用途では迅速で確実な原状復帰までは求められていません。それができれば良いですが、作業コストの面で不釣り合いであるため今回はそこまでの対処はしていません。

最低限の対策として、データベースは定期バックアップを取る程度に留めておきました。

監視設定

以前から使用していたZabbixで構築したサーバーの状態を監視します。
各種サービスの稼働状況、アクセス状況、ハードディスクの使用率、メモリ使用率等に加え、CPU温度を監視対象に追加しました。

ReTerminalにはヒートシンクがついていますが、冷却ファンは搭載していないため、実際のところ稼働を続けた状態だと大丈夫なのだろうかという不安がありました。
ReTerminalは別プロジェクトでも採用したい端末ですので、端末検証の意味でもどの程度の使用でCPU温度が問題値となるのかはあらかじめ把握しておきたい項目です。

コスト面

移行が終わり、使用していたEC2やRDSをなくしたのは先週あたり(7/19)です。今日(7/26)、AWSコンソール上で請求項目を見ると先月から27%DOWNだそうです。
削減したものは、

  • EC2(A1.large)×2   
  • RDS×1

の3つです。
それ以外に、EC2削除に伴って不要なEBSも削除したためその分の費用も下がると思います。
再来月の請求がどれくらいになるか楽しみです。

追記(2022/9/1)
AWSの費用が確定しました。
脱クラウド計画(3) コスト面での結果

速度

立ち上げているアプリケーションが多いためか、ときどき最初のアクセスにもたつきを感じますが、一度アクセスされるとしばらくは遅さは感じません。
このサイトにおいては、GoogleのPageSpeedInsightsで合格がでました。

一時完了

故障時の移行の手軽さを考えるとDockerで環境構築してもよかったかなと思いましたが、それはまたの機会にします。
しばらくは、このまま様子を見て問題なければogochanが作成しているNapierに移行したいと思います。

逆プロキシー Napier(1)
逆プロキシー Napier(2) SSLとバーチャルホストへの対応

最近のエントリー

OrangePi5にZabbixをインストールする

レビュー等の依頼について

オープンソースのノートアプリ「SiYuan」 - CasaOS AppStoreレビュー

お気に入りの色さがし1

創立記念日

現在の営業品目(2)

現在の営業品目(1)

SPDX License Listをデータ化した

Orange Pi5でC3TR-Adapterを試す

CasaOS上で会計システム「Hieronymus」を動かす

会計システム「Hieronymus」v1.0.0 リリースしました

CasaOSでファイル同期アプリSyncthingをセットアップする

第11回 Freshmeat

オープンソースノーコード「Activepieces」でワークフローを作る

RaspberryPiにパーソナルクラウドOS「CasaOS」を導入する

sequelize-cliでdb:migrateすると「SyntaxError: Unexpected token ':'」が出る

LED行燈の試作(2)

CMSの社内向けサービスのリニューアル

LED行燈の試作(1)

エントリを書くこと