t_wの輪郭

あれ

2024/2/11 23:43:00

ブログのリプレイスできたああああああああ!!!!!

AWS Amplifyで動かしたら月額1万円かかって爆死したので、Vultrに戻した。

ついでにPostgreSQLからDuckDBに変えてみた。
PostgreSQLで300msかかってた処理が100msになった。やったぜ。

あれ

2022/11/23 10:52:00

 手書きできる画像アップローダーみたいなのを考えてるんだけど、考えることが多い。DBどうしようとか、利用者登録管理どうしようとか。

 ナウでヤングなやり方を考えるなら、クラウドでマイクロサービスでウェイするのがいいんだけど、それするとお金がドバドバ出ていく。

 VultrのVPCでDockerを動かしてマイクロサービスやーってやったら安くつきそうな気がする。

 そう考えると、『t_wの輪郭』のシステムもDocker上で動かしたくなる。

 やることが……やることが多い……!!

 ブログシステムのDocker化、ベンダーに頼むと2人月とか取られるやつじゃんね。規模によるけど。4万ページあるし、ブログ移行としては超大規模案件では?ページ数でみるとやたらデカいけど、システム的にはDBとNode.jsだからそんなにか。

 問題は作業者(t_w)にDockerの知識があんまりないってことなんだよな。『t_wの輪郭』のDocker化で知識をためつつ、手書き共有ウェブアプリ(仮) EGAKUの準備を進めるという形が綺麗か。

 Docker使うと依存する技術が増えて面倒じゃんというのもある。

2022年7月16日 22:50

 『t_wの輪郭』が落ちてる件に関しては「俺は悪くねぇっ!」案件だったけど、Vultrを選定したの私だし、安いし、まあしゃあないかの気持ち。
 Vultrが復旧した後に『t_wの輪郭』の復旧を確認したいので、寝ずの番をするかもしれない。


2022年7月16日 23:07

 復旧したっぽい。
 SSHつながったしウェブサイトも繋がっている。
 動かしてたクローラーも再起動したらちゃんと動いている。

nginxSSHポートフォワーディングを使ってなんかいい感じにする

開発環境をHTTPS化したい動機

前提条件

  • サーバーがあること(今回はVultrを使用)
  • サーバーのOSはUbuntu20.04であること
  • ドメインを持っていること
  • letsencryptで証明書を取得していること

構成図

nginxの設定

server {
  listen 443 ssl;
  server_name {domain};
  ssl_certificate /etc/letsencrypt/live/{domain}/fullchain.pem; # managed by Certbot
  ssl_certificate_key /etc/letsencrypt/live/{domain}/privkey.pem; # managed by Certbot

  location / {
    proxy_set_header HOST $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto https;
    proxy_pass http://127.0.0.1:{server port};
  }
}

ローカルのPC側で叩くコマンド(SSHポートフォワーディング)

ssh -R {server port}:localhost:{localhost port} {domain} -l {user_id}



失敗録

ngrokを使う

確かにngrokを使えばngrokが提供するURLを通して、localhostにhttpsでアクセスすることはできる。
ただし、ngrokによってmanifest.jsonが以下のコードに置き換えられる。

<!DOCTYPE html>
<html lang="en-US">
  <head>
    <meta charset="utf-8">
    <meta name="author" content="ngrok">
    <meta name="description" content="ngrok is the fastest way to put anything on the internet with a single command.">
    <meta name="robots" content="noindex, nofollow">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link id="style" rel="stylesheet" href="https://cdn.ngrok.com/static/css/error.css">
    <noscript>You are about to visit ####-####-##-####-####-####-####-###-###.jp.ngrok.io, served by ####:##:####:####:####:####:###:###. This website is served for free through ngrok.com. You should only visit this website if you trust whoever sent the link to you. (ERR_NGROK_6024)</noscript>
    <script id="script" src="https://cdn.ngrok.com/static/js/error.js" type="text/javascript"></script>
  </head>
  <body id="ngrok">
    <div id="root" data-payload="eyJjZG5CYXNlIjoiaHR0cHM6Ly9jZG4ubmdyb2suY29tLyIsImNvZGUiOiI2MDI0IiwiaG9zdHBvcnQiOiI3Y2FmLTI0MGItMTAtMjRjMC0xYzAwLTdjMzEtNjI4NC1lMjctMTM1LmpwLm5ncm9rLmlvIiwibWVzc2FnZSI6IllvdSBhcmUgYWJvdXQgdG8gdmlzaXQgN2NhZi0yNDBiLTEwLTI0YzAtMWMwMC03YzMxLTYyODQtZTI3LTEzNS5qcC5uZ3Jvay5pbywgc2VydmVkIGJ5IDI0MGI6MTA6MjRjMDoxYzAwOjdjMzE6NjI4NDplMjc6MTM1LiBUaGlzIHdlYnNpdGUgaXMgc2VydmVkIGZvciBmcmVlIHRocm91Z2ggbmdyb2suY29tLiBZb3Ugc2hvdWxkIG9ubHkgdmlzaXQgdGhpcyB3ZWJzaXRlIGlmIHlvdSB0cnVzdCB3aG9ldmVyIHNlbnQgdGhlIGxpbmsgdG8geW91LiIsInNlcnZpbmdJUCI6IjI0MGI6MTA6MjRjMDoxYzAwOjdjMzE6NjI4NDplMjc6MTM1IiwidGl0bGUiOiJPSyJ9"></div>
  </body>
</html>

そのため、PWAを使う場合には向かない。

localhost.runを使う

httpsでアクセスできたし、manifest.jsonも書き換わらないのでPWAをインストールできる。
ただし重い。


参考

常時サーバーがアクティブと仮定した場合

1 秒あたり ¥0.0035044

30[日] × 24[時間] × 3600[秒] × 0.0035044[円] = 9083.4048[円/月]
ヌゴゴゴゴゴゴ……

常時サーバーがアイドルと仮定した場合

1 秒あたり ¥0.0004381

30[日] × 24[時間] × 3600[秒] × 0.0035044[円] = 1135.5552[円/月]
Vultrで一番安いインスタンスを立てる方が安い……

月額料金 2022年7月22日

Linode
 2GB, $10.00/mo, $0.015/hr, 2 GB RAM, 1 CPUs, 50 GB Storage, 2 TB Transfer, Network In/Out 40/2 Gbps → $10.01

月額料金 2022年4月29日

Azure
 CPU1コア、メモリ1.75GB、ストレージ70GB → $53.29
GCP
 CPU1コア、メモリ3.75GB → $31.17
Vultr
 1vCPU、1GB、ストレージ32GB → $6
AWS
 1vCPU、メモリ2GB、ストレージ70GB → $19.15

Vultr安いし、Vultrにしとくか。