Serverless(Function Compute)でWEBアプリケーション
ども、会社のブログばかり書いて、自分のブログは、だいぶ放置ぎみなカロージです。
今回は、前から気になっていたサーバーレスなプロダクト「Function Compute 」でのWEB構築です。 昨年ぐらいにしれっと入っていた機能ですね。
Alibaba Cloud の代表的なサーバーレスなプロダクト「Function Compute 」に WEBアプリケーションをデプロイしてWEB画面が表示されるまでを検証しました。
ということで試したのは以下
まず、Next.jから
設置手順は以下(と言ってもサーバーレスなので超簡単)
1.コンソールで「Function Compute」の画面へ行き、「Node.JS」を選択
2.次に「Next.js」->「デプロイ」の順に選択
「Next.js」の他にも定番の「Express」や、人気の「Nuxt.js」や「Egg.js」なんかもあります。
3.デプロイされる迄しばし(2~3分)待ちます。
4.デプロイが完了すると以下のような画面が表示されます。
5.最後にドメインで指定されているURLへアクセスすると。和すか数ステップでデプロイまで完了されているのが確認できます。
※同じ手順でGoLang(Gin)をデプロイすると以下の画面が確認できます。
※個人的にPHP(laravel)が使い慣れているので、
更に同じ手順でPHP(laravel)をデプロイするとエラーが…
ということで、サポートへチケットを送付しときました。
ちなみにみLavelは、バージョン7でした。
また、Lavelは、ストレージとbootstrapのキャッシュディレクトリに書き込み権限を付与する必要があるのですが、
その権限が付与されていないだけに見えました。
ちなみにコンソールは以下の様な感じ。VSCodeっぽい。
(こちらも進化してますね。)
おまけ
サンプルでToDoListがデプロイできます。結果画面は以下
まとめ
- 面倒なサーバー構築しなくて良いのが超スペシャルありがたい。
- 数ステップでデプロイまでできるのがありがたい。
- ECSを購入するより安価になりそうなので、Laravel を早く治してほしい。
- なんだったら、Laravel8のJetStream 使いたい。
次回
サーバーレスでWEBアプリケーションは超ありがたいのですが、
サービスまでの削除が地味に分かりづらかったので次回は、後片付けについて記事を記載したいと思います。
でわ
Windows Subsystem for Linux(WSL バージョン2)をインストールと設定
久々のブロ記事が今更のWSL インストールネタになってしもた…
とは言え、備忘録的な要素もあり記載させて頂きます。
・前提
・Windows 10 Pro
・管理者モードでPowerShellを起動し、下記のコマンドを実行してWSLを有効化。
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
・WSLのデフォルトバージョンをWSL2にする
wsl --set-default-version 2
・何やら以下のエラーが…
WSL 2 を実行するには、カーネル コンポーネントの更新が必要です。詳細については https://aka.ms/wsl2kernel を参照してください
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
・エラー原因 2020/3/13以降、wsl2の実行には、アップデートファイルのダウンロード&インストールが必要になりました。
・回避
警告文の通り、https://aka.ms/wsl2kernelにアクセスし、wsl_update_x64.msiをダウンロードします。
Download the Linux kernel update package
Please download the latest WSL2 Linux kernel update package for x64 machines.
・Linuxディストリビューションのインストール Microsoft Storeの場合は、アプリを起動して「WSL」を検索します。
・確認 コマンドラインで wsl -l -vを実行すると、インストール&初期化済みのLinuxディストリビューションのWSLバージョンを確認できます。
PS> wsl -l -v
NAME STATE VERSION
* Ubuntu Stopped 2
Debian Stopped 1
・rootユーザ スイッチするコマンドは以下
$ sudo su -
- 各種パッケージインストール
その前にアップデート
sudo apt update
$ sudo apt install -y vim
$ sudo apt install -y curl
$ sudo apt install -y apache2
サービス起動してるか確認
$ service apache2 status
起動してないらしいので起動する。
$ sudo service apache2 start
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt update
$ sudo apt install php7.2 php7.2-common php7.2-cli php7.2-fpm php7.2-mysql php7.2-dev php7.2-mbstring php7.2-zip php7.2-sqlite php7.2-curl php7.2-gd php7.2-xml
$ php -v
● ApacheのPHP7.2モジュールをインストールして、Apacheを再起動。
$ sudo apt install libapache2-mod-php7.4
$ sudo service apache2 restart
phpinfo設置
$ sudo su
$ echo '<?php echo phpinfo();' > /var/www/html/phpinfo.php
$ exit
確認 http://localhost/phpinfo.php
Composerをインストール
- やること /usr/local/bin に composer という名前でインストールして、 グローバルで composer コマンドを使えるようにする。 - 公式サイト https://getcomposer.org/download/ - インストール php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === '795f976fe0ebd8b75f26a6dd68f78fd3453ce79f32ecb33e7fd087d39bfeb978342fb73ac986cd4f54edd0dc902601dc') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer composer --version
4.MariaDBをインストール - インストール sudo apt install mariadb-server mysql --version
- 起動する
ステータス確認
service mysql status
サービス起動する。
sudo service mysql start
- 初期設定
sudo mysql_secure_installation
試しにrootユーザーで入ってみる。
sudo mysql -u root -p
入れたら
MariaDB [(none)]>quit;
quit; で抜ける。
● MariaDBに開発用ユーザー作成
- SQL実行
CREATE USER username@localhost;
GRANT ALL PRIVILEGES ON *.* TO username@localhost IDENTIFIED BY 'passwd' WITH GRANT OPTION;
- 確認SQL
SELECT user, host, password FROM mysql.user;
- ログイン
sudo mysql -u username-ppasswd