アップロードした写真に人の顔があればモザイクをかける Web アプリです。
- 依存ライブラリをインストールします。
pip install -r requirements.txt
uvを利用する場合は次のように仮想環境を作成してインストールできます。uv venv .venv source .venv/bin/activate uv pip install -r requirements.txt - アプリを起動します。
ポート
python app.py
5000が使用中の場合は環境変数PORTで別のポート番号を指定できます。 例:PORT=8000 python app.py - ブラウザで
http://localhost:5000(別ポートを指定した場合はその番号) を開き、画像をアップロードすると、顔部分にモザイクがかかった画像が表示されます。
app.py: Flask アプリ本体templates/index.html: アップロードフォームrequirements.txt: 必要な Python パッケージ
AWS 上に EC2 インスタンスを作成してアプリを公開するシンプルなサンプルを terraform
ディレクトリに用意しています。以下のように実行します。
cd terraform
terraform init
terraform applyami_id や key_name などの変数は -var オプションや terraform.tfvars
ファイルで指定してください。適用後、出力される instance_public_ip にブラウザ
からアクセスすることでアプリを確認できます。
- AWS アカウントを作成し、IAM ユーザー を用意します。アクセスキーを取得したら
aws configureでクレデンシャルを設定します。 - EC2 用のキーペアを マネジメントコンソール から作成し、
terraform.tfvarsにkey_nameを設定します。キーファイル (.pem) は SSH 接続で必要になるので安全に保管してください。 - デプロイするリージョンや AMI ID を
terraform.tfvarsで指定します。Ubuntu の AMI は AWS マーケットプレイス などで検索できます。 - GitHub からアプリを取得するため
repo_url変数を設定します。自身のフォークを利用する場合はhttps://github.com/<ユーザー名>/face_mosaic_appの形式で指定してください。 - 変数を用意したら次を実行します。
cd terraform terraform init terraform apply - 数分待つと EC2 インスタンスが起動し、
instance_public_ipが表示されます。ブラウザでhttp://<表示されたIP>:<port>を開くとアプリにアクセスできます。 - 必要に応じて次のコマンドで SSH 接続も行えます。
ssh -i <作成したpemファイル> ubuntu@<instance_public_ip>