
Pythonanywhereのメリット
なにかと "Web" には興味あるものの、サーバー代やドメイン代、慣れない操作感等でモヤモヤされている方も多いのではないでしょうか?
今回は "常時接続" "広告無し" でサーバーを無料利用できる 「Pythonanywhere」 についてご紹介。
機械学習のプログラムを実行したことあるけど、そこから前に進んでいない方、チョット前進できるかもしれませんよ。
Pythonanywhereの特徴とメリット
クラウド上で Python プログラムを実行できる環境はたくさんあります。
Google Colaboratry
Kaggle
AWS
Google Cloud Platform
Repl etc
私は基本コラボ使ってるけど、awsはそろそろ乗り換えようかなーっと・・・。
Pythonanywhere は、 VPS や 有料版AWS のように いつ アクセスしてもプログラムからレスポンスをもらうことができます、無料で。しかも煩わずわしい広告はなし、逆に自分が公開する Webサイト に広告を貼ることができるでしょう。
そして Webサイト の公開にかかる時間は、最短 1分。しかも SSL(https://)については "ワンクリック" で OK。 レンタルサーバーや VPS、 AWS などいくつかのプラットフォームを体験したことのある大島ですが、この Pythonanywhere の操作性、興奮しました。
従来 Python を利用した Webアプリのプラットフォーム作成は手間がかかるものでしたが、こちらを利用すれば本当に早く、正確に自分だけの Webサイト を公開することができます。
Pythonanywhereのメリット
無料で始められる
管理画面等に広告表示無し
利用できるフレームワーク Django、 Flask、 Bottle、 web2py etc
データベース MySQL も無料利用可(Postgre有料)
SSL(https://)はワンクリックで無料
サーバー上のファイル操作も分かりやすい
保存可能データサイズは約 12GB
コマンド操作無しでサーバー等設定できる
タブレットでも操作可能
利用ユーザー数: 約 1,400万
Pythonanywhereのデメリット
AWS や VPSサーバーに比べると制約がある
REST API などは開発・利用しにくい(できない)
.pkl など一部ファイル種は特有の読み込みプログラムが必要
pip intsall には --user オプションが必要
無料版はサブドメインのみ
[デプロイ]PythonAnywhereでWebサイトを簡単に公開する
「PythonAnyWhere」を使用すると、Djangoなどで作成したWebサイトを簡単に公開することができます。
いわゆるデプロイと言われるやつですね。
デプロイというと、herokuとかが有名ですが、Pythonを使用しているなら「PythonAnyWhere」でも問題ないです。
就職や転職の際にポートフォリオを企業に見せると思うので、その際にも活用できます。
自分の自慢のサイトを世界に公開していきましょう!
PythonAnyWhereに登録
まずは「PythonAnyWhere」にユーザー登録をしていきましょう。
https://www.pythonanywhere.com/
こちらにアクセスしてユーザー登録してください。
GitHubにリポジトリ作成
次に「GitHub」にリポジトリを作成していきます。
「GitHub」とは、簡単にいうとファイルの管理と変更履歴を保存して置ける場所です。
「GitHub」で常にファイルを管理している方はこのステップは飛ばしてください。
そもそも「GitHub」のアカウントがない方は以下からアカウントを作成してください。
アカウントが作成できたらログインできたら、右上の自分のアイコンから「Your profile」を選択して、自分のページにいきましょう。
リポジトリにがファイルなどを入れる
コピーできたらそのまま「terminal」を開いてください。
# git clone 先ほどコピーしたもの
# 僕の場合
git clone git@github.com:cardene777/pythonanywere.git
「terminal」を開いたら「Desktop」に移動して、次のコマンドを入力してください。
これは先ほど作成したリポジトリを自分の手元に持ってくるコマンドです。
もしエラーが出てしまった場合はこの記事を参考にしてください!
詳細はrefをみてね!
PythonAnywhere を使用した Flask のデプロイを自動化する
本チュートリアルの内容:
PythonAnywhere をセットアップする
CircleCI で Flask プロジェクトをセットアップする
CircleCI で PythonAnywhere への Flask のデプロイを自動化する
CI/CD を知った開発チームにとっては、デプロイも時間のかかるめんどうなプロセスに見えてくるものです。 CI/CD の第一歩が継続的なテストとすれば、デプロイを自動化する方法は CI/CD のレベル 2 と言えます。
継続的デプロイメントによってリリースまでの時間を短縮することで、アプリケーションの品質向上に多くの時間を掛けられるようになります。 このチュートリアルでは、自動化された継続的デプロイメントによって、Flask アプリケーションを PythonAnywhere にデプロイする方法をご紹介します。 このチュートリアルを完了することで、CI/CD の実践者として “1 つ上” のレベルに到達できることでしょう。
前提条件
本チュートリアルを始めるには、次の準備が必要です。
PythonAnywhere の Hacker プランに登録する
CircleCI アカウントを作成する
GitHub アカウントを用意する
CI/CD の基礎を理解する
Swagger UI で API ドキュメントを作成する方法を理解する
本チュートリアルはさまざまな CI/CD プラットフォームに適用できますが、例として CircleCI を使用しています。 CircleCI アカウントをお持ちでない場合は、こちらから無料アカウントを作成してください。
このチュートリアルでは、サンプルアプリケーションとして Flask API を使用します。 この Flask アプリケーションでは、ブックの作成と取得に使用する Swagger API を公開します。 次の GitHub リポジトリをクローンして、アプリケーションのソースコードを取得してください。 git clone git@github.com:mwaz/automating-flask-deployments-with-pythonanywhere.git
クローンしたリポジトリは、後で説明する PythonAnywhere の設定時にのみ使用します。
詳細は下記urlへ!
またこんな記事があるぞよ。
pythonanywhereに作ったアプリをデプロイしてみた
デプロイマンへの道のり
アカウントの作成
公式サイトにアクセスする。アクセスしたら、Start running~をクリックする。
Beginnerプランを選んで、Create a Beginner account をクリック。
※他のプランは有償なので注意
ファイルのアップロード
ファイルのアップロード方法には①Git経由、②アップロード経由 の2種類存在する。自分の場合は②を選択することにした(楽だから)
アップロードするファイルの構成は下記の通り。
詳細は下記urlへ!
ref