Python + falcon + gunicorn + systemd でシンプルな Web アプリを起動する
Python で falcon と gunicorn を使い、シンプルな Web アプリケーションを作り、更にそれを systemd に登録するまでの手順をメモしておきます。
Python で falcon と gunicorn を使い、シンプルな Web アプリケーションを作り、更にそれを systemd に登録するまでの手順をメモしておきます。
しばしばテスト用の Amazon Linux2 を構築するのですが、自分なりの初期設定をスクリプト化してみました。「初期設定を手間なくすませる」方法は、他に以下が考えられると思います。
Ansible は手軽だし、エージェントも不要なので「良い手段」のひとつだと思います。 大量にテスト用 Linux を用意するのであれば AMI 化するのもひとつの方法だと思いますが、そこまで頻度が高いわけでは無いのであれば、毎回 AWS が提供する最新ベースイメージを Ansible やスクリプト等で設定しても良いと思います。 cloud-init も手軽な方法のひとつですが、「cloud-init が使えない環境には応用し辛い」という点はデメリットだと思います。
macOS のパッケージマネージャとしてお馴染みの homebrew が WSL にも対応したそうなので、実際に WSL2 へインストールしてみました。 インストール手順は公式サイトに記載されています。
Amazon Linux2 に Zabbix 4.0 TLS をインストールする手順をメモしておきます。 公式サイトのダウンロードページから Zabbix をインストールしたい環境を選択すると、その環境に合わせたインストール手順もガイドされます。 基本的にはこのガイドの手順に従うだけでインストールは完了します。 余談ですが、Zabbix 4.0LTS では Web サーバとして Apache しか選択出来ませんが、4.4 を選択すると Apache と Nginx が選択出来ました。 今回は「Zabbix 4.0 LTS + CentOS7 + MySQL + Apache」構成としました (Amazon Linux2 ベースなので、OS には CentOS7 を選択しました)。
今回は AmazonLinux2 上に LDAP 認証を行う Squid (プロキシ) のインストール方法をメモします。 LDAP は特定グループに所属するメンバーで認証します。
Caddy はプラグインで拡張可能な高機能 Web サーバです。 但し、公式サイトからダウンロード出来るバイナリをそのまま使う場合は商用ライセンスの購入が必要なんだそうです。 Caddy は現在、バージョン 2 系が開発中だそうですが、今回はバージョン 2 をインストールしてみます。 ただ、現状で Caddy2 は開発中の為、ドキュメントが少なく、またバージョン 1 から大幅に設定方法も変更されている為、安定して使いたい方にはお勧め出来ないかも知れません…
CentOS8 標準リポジトリ上の Go は 1.11.6 と古いです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
そこで今回は手動で最新の Go をインストールします。 インストールは簡単で、以下のように実行するだけです。
1 2 3 4 5 |
|
AWS の EC2 インスタンスは複数の ENI (≒ NIC) を割り当てたり、ひとつの ENI に複数のプライベートアドレスを割り当てることが可能です。 「何個割り当てられるか?」はインスタンスタイプによって異なり、大型のインスタンスである程、最大数も増えます。 t2.nano や t2.micro でも「ふたつまでの ENI」「ひとつの ENI にふたつのプライベートアドレスまで」設定することが可能です。 例えば「ひとつの ENI にふたつのプライベートを割り当て」た状態で firewalld のポート転送機能と組み合わせると、以下のようなトラフィックフローを実現することが可能です。
今回は実際にこの設定を行う手順をメモしておきます。
CentOS8 では新たに AppStream という仕組みが導入されたそうです。 まだ AppStream の詳細を理解出来ていないのですが、従来通りの手順で Nginx の公式リポジトリから Nginx をインストールしようとすると AppStream リポジトリが優先されてしまい、Nginx 公式リポジトリからインストールすることが出来ません。 そこで、今回は AppStream リポジトリが使われることを回避し、Nginx 公式リポジトリからインストールする手順をメモしておきます。 当然、プラットフォームは CentOS8 を使ってテストします。