鯖ラー 第4回「計量」※随時更新中
VMインスタンスの情報収集するためのメモです。
まるで獲ってきた鯖の計量をするかのの如く・・・
情報収集用コマンド
UnixBenchとlscpuなどを使って情報収集するためのものです。シェルスクリプトではなくターミナルにコピペする形式です(scpとかwgetとか面倒くさい)。なにか後から気づいたら随時更新してきます。
echo ""; \ echo "====================="; \ echo " measurement for Ubuntu"; \ echo "====================="; \ echo ">>>>>>>>>>>>>>>>>>>>>>>>>>> update"; \ sudo apt -y update; \ echo ">>>>>>>>>>>>>>>>>>>>>>>>>>> listing"; \ cd ~/; \ echo -en "-----lscpu ----------------\n" > ls_result.txt; \ lscpu >> ls_result.txt; \ echo -en "\n\n\n\n" >> ls_result.txt; \ echo -en "-----cat /proc/puinfo------\n" >> ls_result.txt; \ cat /proc/cpuinfo >> ls_result.txt; \ echo -en "\n\n\n\n" >> ls_result.txt; \ echo -en "-----lspci-----------------\n" >> ls_result.txt; \ lspci >> ls_result.txt; \ echo ">>>>>>>>>>>>>>>>>>>>>>>>>>> UnixBench"; \ cd ~/; \ sudo apt install -y wget gcc make build-essential; \ wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/byte-unixbench/UnixBench5.1.3.tgz; \ tar xvfz UnixBench5.1.3.tgz; \ cd UnixBench; \ ./Run; \ echo ">>>>>>>>>>>>>>>>>>>>>>>>>>> tarball"; \ cd ~/; \ tar cvf unixbench_result.tar ./UnixBench/results; \ tar cvfz result.tgz ls_result.txt unixbench_result.tar; \ echo ">>>>>>>>>>>>>>>>>>>>>>>>>>> scp message"; \ cd ~/; \ scpstr="$ scp "; scpstr+=$USER; scpstr+="@"; scpstr+=$( echo $SSH_CONNECTION | cut -d' ' -f3 ); \ scpstr+=":"; scpstr+=$PWD; scpstr+="/result.tgz ./"; \ echo -en "Please scp from local... (add \"-i privatekey\" if necessary)\n "; \ echo $scpstr; \
GeekBench
有料版にしようかと迷いました所。今後GPUインスタンスも使う予定だしCUDAのベンチマークも取りたいので買いました。
詳細は以下の別記事にしました。 vz-shark.hatenablog.com
CentOS
CentOSでのUnixBenchをした時のメモ
yum install make gcc perl perl-Time-HiRes; \ wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/byte-unixbench/UnixBench5.1.3.tgz; \ tar xvfz UnixBench5.1.3.tgz; \ cd UnixBench/; \ ./Run; \
環境
- 基本的にUbuntu18.04LTS
- GeekBench 4.3.0
〜続く〜
鯖ラー 第3回「沿岸漁業」
海外の鯖屋さんのうち、日本リージョンがあるものを試してみる。
まるで遠洋から日本近海へと回遊してきた鯖を獲る沿岸漁業の如く・・・
大手(AWS/GCP/Azuru)は沢山情報があるので今回は扱わないことにする。次回以降に気になるサービスをピックアップして試していこうと思う。
今回は比較的情報が少なめな、海外の会社のサービスで、日本リージョンがあるものの中から、割安なものをターゲットにする。
鯖屋さんを探す
vCPU1以上、Ram2GB以上で、検索すると
Vultr / Linode / ConoHa の3つめぼしいのがある。このうち ConoHa は日本のGMOのVPSなので国産鯖。今回の趣旨から外れるので対象外にする。いつか「国産鯖の回」をやるときにとっておこう・・・
VultrもLinodeも1core/2GBで$10のプランがあるので比較しやすい。
Vultr
全般
- 言語は英語。通貨は米ドル
- 料金はバンドル(Cpu/Ram/Strage/Transfer)タイプ。
- all intel cpu , full ssd storage とのこと
- リージョンは、アメリカ、ヨーロッパ、アジア、オーストラリアで15データセンター全て均一料金。
- Asiaは、東京とシンガポール。
- クレジットカードは、JCBブランドが使えななかった。今回はPayPalで登録。
管理コンソールUI(Web)について
- 機能が少ない分、シンプルで解りやすい。
- ブラウザからVMのコンソールへ接続機能あり。
- モニタ機能(Usage Graphs)あり。
- VMへのSSH公開鍵の登録がインスタンス作成時のみしかできなかった。作成時に鍵登録を忘れるとパスワードベースでのログインになる。後で、手動でキーを登録する必要があった。
機能について
機能
- DNS機能あり
- IPv6対応
- WebAPI対応
- イメージは、各種Linux、Windowsがある。
- アプリケーションイメージ(wordpress/LAMP/Docker/etc)が用意されている。
- ISOイメージをアップロードしたり、用意されているISOからからDeployできる。
- 環境構築を自動化するStartupScript機能がある。
- Vultrの広告を出して収益化する機能がある。
- VPSの他BareMetal / Strage / 専有サーバ がある。
バックアップ
- スナップショットは今の所フリー。あとで有料にかわるかもしれない。とのこと
- 自動バックアップは別途2$/mo
負荷管理
- ロードバランサなし
- ストレスアラームなし。
- Quota機能なし
- WatchDog機能なし
セキュリティ
- 2段階認証あり。
- DDOS Protection は、今の所東京ではない。
- Firewall機能あり(初期設定ではOFFなのでWebコンソールから設定)
性能
- 比較表参照。
Linode
全般
- 言語は英語。通貨は米ドル
- 料金はバンドル(Cpu/Ram/Strage/Transfer)タイプ。
- High performance SSD Linux servers for all of your infrastructure needs. とのこと
- SSD strage, Intel E5 Processors, 40Gbit Network
- リージョンは、アメリカ、ヨーロッパ、アジアで9データセンター全て均一料金。
- Asiaは、東京 とシンガポール。
- クレジットカードは、JCBブランドが使えななかった。今回はMasterで登録。
- サインアップ時に少額のデポジット必要。(今回は一番少ない$5)
管理コンソールUI(Web)について
- 機能が少ない分、シンプルで解りやすい。
- ブラウザからVMのコンソールへ接続機能あり。
- モニタ機能(Usage Graphs)あり。
- VMへのSSH公開鍵の登録がWebコンソールからできなかった。初期設定ではパスワードベースでのログインになる。後で、手動でキーを登録する必要があった。
機能について
機能
- DNS機能あり
- IPv6対応
- WebAPI対応
- イメージは、各種Linuxのみ。Windowはない。
- アプリケーションイメージはない。
- 環境構築を自動化するStackScript機能がある。
- BootLoaderのカスタム機能あり。(今回はubuntu選択なのでGrub2)
- Rescueモードあり
バックアップ
- バックアップ機能あり
$2.5/mo。自動3世代ローテーション。1つのユーザースナップショット。
負荷管理
- ロードバランサあり。別途$20/mo
- ストレスアラームあり。(CPU/DISK/Traffic)
- Quota機能あり(Transfer)
- WatchDog機能あり(reboot)
セキュリティ
- 2段階認証あり。
- DDOS Protection はない。
- Firewall機能も見当たらなかった。
性能
- 比較表参照。
比較表
今回は同じ$10/monのプランで、インスタンスも同等、料金体系も同じなので比較表にした。
項目 | vultr | linode |
---|---|---|
サイト | https://my.vultr.com/ | https://www.linode.com/ |
プラン | 40GB SSD | Linode 2GB |
リージョン | Tokyo, Asia | Tokyo2, Asia |
インスタンス | 1vCPU, 2GB(RAM), 40GB(SSD), 2TB(Transfer) | 1vCPU, 2GB(RAM), 50GB(SS), 2TB(Transfer) |
料金 | $10/mo(CPU/RAM/Strage/Transfer バンドルタイプ) | $10/mo(CPU/RAM/Strage/Transfer バンドルタイプ) |
GeekBench スコア | Single-core 3375 / Multi-core 3288 | Single-core 2667 / Multi-core 2458 |
GeekBench Result | https://browser.geekbench.com/v4/cpu/10297115 | https://browser.geekbench.com/v4/cpu/10297094 |
UnixBench スコア | 1150.9 | 915.3 |
OSイメージ | Windows/linuxあり | Linuxのみ |
アプリイメージ | アプリのイメージあり。 | アプリのイメージない。 |
バックアップ | あり。$2/mo | あり。$2/mo |
負荷管理 | なし | ロードバランサあり。別途$20/mo ストレスアラームあり(CPU/DISK/Traffic)。 Quota機能あり(Transfer)。 WatchDog機能あり(reboot)。 |
セキュリティ | 2段階認証あり。 DDOS Protection は今の所東京ではない 。 Firewall機能あり(初期設定ではOFF)。 | 2段階認証あり。 DDOS Protection はない。 Firewall機能は見当たらなかった 。 |
結果
Vultrのスペックが結構よいので暫くこれを使うことにしました。Webコンソールのデザインもシンプルで好みです。
結構気に入ったので最後にバナーでも貼っときます。
〜続く〜
netcat(nc)コマンド
なにかと便利なnetcatの覚書です。
全般
コマンド名について
nc
でもnetcat
でも同じ。リンク先が一緒。以下はubuntuでの結果。
$ ls -la /bin/nc /bin/netcat /etc/alternatives/nc /etc/alternatives/netcat /bin/nc.openbsd lrwxrwxrwx 1 root root 20 9月 15 23:58 /bin/nc -> /etc/alternatives/nc lrwxrwxrwx 1 root root 24 9月 15 23:58 /bin/netcat -> /etc/alternatives/netcat lrwxrwxrwx 1 root root 15 9月 15 23:58 /etc/alternatives/nc -> /bin/nc.openbsd lrwxrwxrwx 1 root root 15 9月 15 23:58 /etc/alternatives/netcat -> /bin/nc.openbsd -rwxr-xr-x 1 root root 35312 5月 14 21:24 /bin/nc.openbsd
Verbose(-v)について
-vオプションがないと挙動ががわからない時があるので常に付与しておいたほうがよさそう。以下はその例。
# -v オプションがないと何も表示されず。うまく繋がったかわからない。 $ nc 127.0.0.1 1235 $ # -v オプションを付与すると把握できる。 $ nc -v 127.0.0.1 1235 nc: connect to 127.0.0.1 port 1235 (tcp) failed: Connection refused $
IPのバージョンの明示( -4 / -6 )
$ nc -v -4 127.0.0.1 3000 # IPv4 127.0.0.1(localhost) の TCPポート3000へ接続 $ nc -v -6 ::1 3000 # IPv6 ::1(localhost) の TCPポート3000へ接続
ローカルの IPの明示( -s) と ポートの明示(-p) ※1
※1 v1.10-41 では、サーバー(-l)動作時に、ローカルIPとPORTを明示しないと動作しなかった。(2018/10/17)
$ nc -vl -s 127.0.0.1 -p 3000 # 127.0.0.1のTCPポート3000でリッスン
環境について
TCP関係
TCPクライアント
$ nc -v 127.0.0.1 1234 # 127.0.0.1(localhost) の TCPポート1234へ接続
TCPサーバ(-l) ※1
$ nc -v -l 127.0.0.1 1234 # 127.0.0.1でbindしてTCPポート1234をリッスン $ nc -v -l 0.0.0.0 1234 # 0.0.0.0(anywhere)でbindしてTCPポート1234をリッスン
TCPサーバで複数セッション(-k) ※1
上記の-lオプションだけだと、1セッションのみ受け付ける挙動となりセッションが切れるとnetcatプロセスも終了する。-kオプションも付与すると同時に複数セッションを受け付けるようになる。
$ nc -v -l -k 127.0.0.1 1234
TCPクライアント/サーバーの実行時の様子 ※1
①サーバ側でコマンド実行
②クライアント側でコマンド実行
③クライアント側からキーボード入力
④サーバー側からキーボード入力
⑤クライアンの側でCTL-Cで終了
【 サーバー側ターミナル】
①$ nc -v -l 127.0.0.1 1234 ①Listening on [127.0.0.1] (family 0, port 1234) ②Connection from localhost 52710 received! ③1.from client ④2.from server ⑤$
【 クライアント側ターミナル】
②$ nc -v 127.0.0.1 1234 ②Connection to 127.0.0.1 1234 port [tcp/*] succeeded! ③1.from client ④2.from server ⑤^C ⑤$
http GET リクエスト
$ echo -en "GET / HTTP/1.1\n\n" | nc -v 127.0.0.1 80
ポートスキャン(-z)
$ nc -v -z 127.0.0.1 1-65535
UDP関係
UDPクライアント(-u)
$ nc -v -u 127.0.0.1 5678 # 127.0.0.1(localhost) の UDPポート5678へ接続
UDPサーバ(-lu) ※1
$ nc -v -l -u 127.0.0.1 5678 # 127.0.0.1でbindしてUDPポート5678をオープン $ nc -v -l -u 0.0.0.0 5678 # 0.0.0.0(anywhere)でbindしてUDPポート5678をオープン
※1 v1.10-41 では、サーバー(-l)動作時に、ローカルIPとPORTを明示しないと動作しなかった。(2018/10/17)
UDPクライアント/サーバーの実行時の様子 ※1
①サーバ側でコマンド実行
②クライアント側でコマンド実行(echoでパイプ入力)
③クライアンの側でCTL-Cで終了
【 サーバー側ターミナル】
①$ nc -v -l -u 0.0.0.0 5678 ①Listening on [0.0.0.0] (family 0, port 5678) ②Connection from localhost 33959 received! ②XXXXX ②UDP test data sendding... ② from client
【 クライアント側ターミナル】
②$ echo -en "\nUDP test data sendding...\n from client\n" | nc -v -u 127.0.0.1 5678 ②Connection to 127.0.0.1 5678 port [udp/*] succeeded! ③^C ③$
【注釈】
※1 v1.10-41 では、サーバー動作時に、ローカルIPとPORTを明示しないと動作しなかった。
ー以上ー
鯖ラー 第2回「 選別」
各社が提供しているVMの品定めをしつつ相場や料金体系を把握していく。まずは予算範囲内で大まかにスペックや価格を比べる。
まるで獲ってきた鯖を選別するかの如く・・・
条件
月額1000〜2000円ぐらいを目処に各社のサービスをスクリーニングする。世界の大手3社(アマゾン、グーグル、マイクロソフト)、国内老舗(サクラ)、格安(DigitalOcean/Linode/Scaleway)を対象とした。
また、外貨決算のサービスは、現在(2018/10/09)の為替レートで円換算している。米ドル( $1 / 113.74円)、ユーロ(€1 / 131.18円)。
※root権限不要であれば、月数百円からホスティングできてしまう・・・(XServer/ロリポップなど沢山ある)。しかしそれでは、鯖ラーではなくなってしまう。鯖ラーというからにはroot権限は必須だ。
集計
No | ベンダー | VMモデル | CPU | メモリ | ストレージ | Internet | 通貨 | 月額 (円) | 初期 (円) | 公表スペック |
---|---|---|---|---|---|---|---|---|---|---|
1 | Amazon AWS *1 | t3.micro | 2 vCPU | 1GB | 従量制*1 | 従量制*1 | 米ドル | 864 | 0 | 2.5 GHz Intel SkylakeP-8175 |
2 | ” | t3.small | 2 vCPU | 2GB | ” | ” | ” | 1727 | 0 | ” |
3 | ” | t3.mediam | 2 vCPU | 4GB | ” | ” | ” | 3454 | 0 | ” |
4 | Google GCP *2 | f1-micro | 0.2 vCPU | 0.6GB | 30GB無料枠*2 | 従量制*2 | 米ドル | 441 | 0 | vCPU共用(20%) |
5 | ” | g1-small | 0.5 vCPU | 1.7GB | ” | ” | ” | 1493 | 0 | vCPU共用(50%) |
6 | ” | n1-standard-1 | 1 vCPU | 3.75GB | ” | ” | ” | 2760 | 0 | 不明 |
7 | Microsoft Azure *3 | B1S | 1 vCPU | 1GB | 従量制*3 | 従量制*3 | 日本円 | 858 | 0 | 不明 |
8 | ” | B1MS | 1 vCPU | 2GB | ” | ” | ” | 1692 | 0 | ” |
9 | ” | B2S | 2 vCPU | 4GB | ” | ” | ” | 3433 | 0 | ” |
10 | サクラ のVPS*4 | 1G | 2 vCPU | 1GB | 30G(SSD) or 100GB(HDD) | 無制限 | 日本円 | 976 | 1620 | 不明 |
11 | ” | 2G | 3 vCPU | 2GB | 50G(SSD) or 200GB(HDD) | ” | ” | 1706 | 2160 | ” |
12 | Digital Ocean*5 | Standard 1x1 | 1 vCPU | 1GB | 25GB(SSD) | 1TB | 米ドル | 569 | 0 | 噂:Xeon |
13 | ” | Standard 1x2 | 1 vCPU | 2GB | 50GB(SSD) | 2TB | ” | 1137 | 0 | ” |
14 | ” | Standard 1x3 | 1 vCPU | 3GB | 60GB(SSD) | 3TB | ” | 1706 | 0 | ” |
15 | ” | Standard 2x2 | 2 vCPU | 2GB | 60GB(SSD) | 3TB | ” | 1706 | 0 | ” |
16 | ” | Standard 3x1 | 3 vCPU | 1GB | 60GB(SSD) | 3TB | ” | 1706 | 0 | ” |
17 | Linode *6 | Nanode 1GB | 1 vCPU | 1GB | 25GB(SSD) | 1TB | 米ドル | 569 | 0 | intel Xeon E5 |
18 | ” | Linode 2GB | 1 vCPU | 2GB | 50GB(SSD) | 2TB | ” | 1137 | 0 | ” |
19 | ” | Linode 4GB | 2 vCPU | 4GB | 80GB(SSD) | 4TB | ” | 2275 | 0 | ” |
20 | Scaleaway *7 | 1-XS | 1 vCPU | 1GB | 25GB(SSD) | 無制限 | ユーロ | 261 | 0 | 噂:Atom |
21 | ” | 1-S | 2 vCPU | 2GB | 50GB(SSD) | 無制限 | ” | 523 | 0 | ” |
22 | ” | 1-M | 4 vCPU | 4GB | 100GB(SSD) | 無制限 | ” | 1048 | 0 | ” |
23 | ” | 1-L | 8 vCPU | 8GB | 200GB(SSD) | 無制限 | ” | 2098 | 0 | ” |
- AWS特記・・・アイオアリージョン/オンデマンド料金/ストレージ参考価格:sc1(HDD) $0.025 1GB/mon〜 / インターネットトラフィック参考価格:上り無制限、下り$0.09/1GB、1GBまで無料。リージョン間トラフィック別途 /リザーブド(1年・3年)割引あり
- GCP特記・・・アイオアリージョン/継続利用割引1ヶ月を適用/ストレージ参考価格:標準永続$0.04 1GB/mon〜/インターネットトラフィック参考価格:上り無制限、下り$0.12 /1GB。リージョン間別途 / AllwaysFree枠あり1xf1-micro、30x1GB/月、他。/確定利用割引あり(1年・3年)
- Azuru特記・・・東アメリカリージョン/ストレージ参考価格:S4 32GB(HDD) 172円/月。一時ディスクは計上していない。/インターネットトラフィック参考価格:上り無制限、下り9.75円/1GB、5GBまで無料 / 時間従量制で計算。/リザーブド(1・3年)割引あり
- サクラのVPS特記・・・初期費用あり/東京・石狩1・石狩2からデータセンター選択可能。/バンドルタイプ(Cpu/Ram/Strage/Transfer)料金体系で、ネットワーク無制限、ストレージはSSDとHDDのどちらかを選択/年間契約割引あり/VPSの他サクラのクラウドがラインナップ。今回は割安なサクラのVPSで比較)
- DigitalOcean特記・・・12リージョン全て値段同じ。最寄はシンガポール / バンドルタイプ(Cpu/Ram/Strage/Transfer)料金体系
- Linode特記・・・9 Datacenters/3 Regions 、東京あり、全リージョン均一料金 / バンドルタイプ(Cpu/Ram/Strage/Transfer)料金体系
Scaleway特記・・・Startプラン x86-64/ リージョンはフランスのみ(パリ・アムステルダム) / バンドルタイプ(Cpu/Ram/Strage/Transfer)料金体系で、ネットワークは無制限 / フランスの会社だが世界向けて英語でサービス展開。決算はユーロ。
無料枠については期限付きのものは対象外としている。
- 料金は月額=730時間で計算。月単位割引があるものは適用した値段を計上。
- 基本的にマシンタイプは、汎用/ベーシックタイプを選択。OSは追加料金不要なLinux選択。
結果
上記の表にまとめた。以下に気になった点をあげてみる。
- 各社vCPUの個数だけでCPUスペックの詳細はあまり公表されていない。
- 基本的にAMD64(X86-64bit)アーキテクチャでIntelのXeon等のサーバー向けCPU。ScalewayはAtomプロセッサ(噂)
- ストレージとネットワークに関しては従量制の料金体系と、CPU/メモリとバンドルされているタイプの2種類の料金体系がある。
- サクラは初期費用がかかる。
- GCPのAllwaysFree枠でf1-microインスタンスが無期限で実質無料で使えそう。
- 各社サインアップ時に期限付きの無料枠のキャンペーンをしている。
- 各社1年・3年契約などの長期割引制度がある。
- AWSスポットインスタンス、GCPプリエンプティブインスタンスのように、リソースの空き時間活用した大幅値引き制度がある
- GPUインスタンスの提供は、AWS/GCP/Azure/サクラ(高火力)。
- TPUインスタンスの提供は、GCPのみ。
- FPGAインスタンスの提供は、AWSのみ。
- Armアーキテクチャのインスタンス提供は、Scalewayのみ。
- 大手3社はやはり強力な印象。個人の小規模なサイトから世界最大規模までスケール可能。そしてなんと言っても魅力的なのは、その会社が抱えるインフラ/最先端のコンピューティング(特に力が入っている、AI関連のサービスなど)の恩恵を受けられる点だと思う。
- 逆に大手以外は、VM提供に特化するなどの差別化やバンドル料金体系の傾向。
- 表にまとめてみてわかったが、サービスの内容を細部まで調べると、一概に比較できない。自分の用途にあったものを選ぶのがベストだが、ブランドで選んでしまうのも良いと思う。
今後
各社のVMを実際に試用する。
CPUスペックなどの情報収集。扱いやすさ。日本語サポートなどの状況。など・・・
今のところ、複数のベンダーを使うのが良さそうな予感。例えば、大手と格安を組み合わせるなど。
ー追記2018/10/10ー
ScaleWay気になって試してみたら本当にAtomでした。
〜続く〜
鯖ラー 第1回「 疼き」
HatenaBlogが遅い
最近ブログ記事を書いていると反応が遅い。特にプレビューと編集を繰り返していると遅くなっていく気がする。無料版だからしょうがないのかなとおもいつつ、広告もめざわりなので、
はてなブログProにしようかと思ったら「1008円/月」ですね・・・
そのぐらいの予算があれば、レンタルサーバーでブログ運用できてしまう・・・
もう少し出せば、クラウドのVMインスタンスが使える・・・
どうせなら、自分で自分のサイトを運用してみようかな・・・・
っと言う具合に、「鯖ラー」のむしが疼きだした次第です。
鯖ラー
サーバー遊びする人 ⇛ サーバーラー ⇛ サバラー ⇛ 鯖ラー
昔、インターネット黎明期、コンピュータはとても高価なもので、サーバーマシンともなれば自分にはとても手が届かないものでした。そんな中、自分のPC+FreeBSDという追加費用0で、商用サーバー(各ベンダーのUNIXシステム)と同等の環境が手に入ると知り、強い衝撃を受けた事を覚えています。
さっそく詳しい友人に聞き、セットアップ〜基本操作まで教えてもらいました。それから夜な夜な(当時は深夜のテレホーダーイ)サーバーを立て、友人と互いにゲストとして迎えたり、互いにハッキングしたりと、サーバー遊びが始まりました。
就職したらそんな暇ない。だけど最近。
卒論や就職活動などがはじまると、そんな鯖ラーも暇がなくなりました。そして社会人となり仕事に邁進する日々を送り、すっかり「鯖ラー」という言葉自体も失念しておりました。ところが最近になって私情により、時間ができ、気づけば時代は大分進み、みんなクラウド化されています。
そんな訳で「クラウド鯖ラー」始めます
前おきが少し長くなりましたが、はてなブログProの「1008円/月」を目安にして、自分のサイト(主にブログや、自分自身のためのサービス)を開発/運用しようと思います。
現代版鯖ラー・・・。「クラウド鯖ラー」の始まりです。
〜続く〜
virtualenv覚書
インストール
$ sudo apt install virtualenv
使い方(基本的な流れ)
1.仮想環境構築
・アプリ用にディレクトリを作成
・virtualenv
コマンドで仮想環境構築
user@host:~$ mkdir ~/testapp user@host:~$ cd ~/testapp user@host:~/testapp$ virtualenv ./
2.仮想環境に入る
・source bin/activate
を実行
・プロンプトの先頭に(testapp)が付与され、どの仮想環境かが示される
user@host~/testapp$ source bin/activate (testapp)user@host:~/testapp$
3.仮想環境上で作業する
以下の例ではnumpyインストールしてバージョンを表示
(testapp)user@host:~/testapp$ pip install numpy (testapp)user@host:~/testapp$ python >>> import numpy as np >>> np.__version__ '1.15.2' >>> CTL-D
4.仮想環境から抜ける
・deactivate
を実行
・プロンプトが通常の表示に戻る
(testapp)user@host:~/testapp$ deactivate user@host:~/testapp$
pythonのバージョンを指定する
- グローバル環境のpythonバージョンを確認
user@host:~/testapp$ python --version Python 2.7.15rc1
- デフォルトだとグローバル環境と同じバージョンになる
user@host:~/testapp$ virtualenv ./ user@host~/testapp$ source bin/activate (testapp)user@host:~/testapp$ python --version Python 2.7.15rc1
- pythonのバージョンを指定
--python=python3
のようにオプション指定する
-p python3
でも同じ。
user@host:~/testapp$ virtualenv --python=python3 ./ user@host:~/testapp$ source ./bin/activate (testapp)user@host:~/testapp$ python --version Python 3.6.5
環境
Ubuntu18.04 LTS
ー以上ー
Windows/Ubuntuディアルブートでの時刻ズレ
WindowsとUbuntu(linux)のディアルブート環境において現在時刻が9時間ずれることがあります。
現象
以下の手順で時刻がどのようにズレるか把握できます。
- 電源投入。BIOSでRTC(ハードウェアの時計)の現在時間があっていることを確認(日本標準時間/UTC+9)。合っていない時は手動で合わせる。
- Ubuntu起動。起動直後は+9時間されている。数十秒ぐらいで時刻が合う。(NTPで時刻更生された。)
- PC再起動。BIOSでRTC確認。−9時間されている。
- Win起動。−9時間されている。
- Winで時刻更生をかける。(手動で行う。Win10はデフォルトだと同期間隔が1周間と長い)
時計システムアイコンを右クリック⇛日付と時刻の調整⇛時刻を自動的に設定する を 「オン⇛オフ⇛オン」と1回オフにしてオンし直す。 - PC再起動。BIOSでRTC確認。現在時刻があっている。
原因
上記から、以下のことがわかる。
- WindowsはRTCをローカルタイム(UTC+9)とし扱い、逆にUbuntuはRTCを世界標準時間(UTC+0)として扱っている。
- WindowsもUbuntuもNTP時刻更生時にRTCに反映させている。
上記2の状態で、timedatectl
をみると、RTC in local TZ: no
となっている。つまり、RTCは世界標準時間として扱われている。
$ timedatectl Local time: 金 2018-10-05 15:43:01 JST Universal time: 金 2018-10-05 06:43:01 UTC RTC time: 金 2018-10-05 06:43:01 Time zone: Asia/Tokyo (JST, +0900) System clock synchronized: yes systemd-timesyncd.service active: yes RTC in local TZ: no
対策
どちらかに統一すれば解決なのですが、もともとPCはWindows向けに作られたものなので、その設計思想(DOS時代からのレガシー)に従いUbuntu側の設定を変えることにします。
# RTCをローカルタイムとして扱うように設定 $ timedatectl set-local-rtc 1 # 確認 $ timedatectl Local time: 金 2018-10-05 16:29:47 JST Universal time: 金 2018-10-05 07:29:47 UTC RTC time: 金 2018-10-05 16:29:47 Time zone: Asia/Tokyo (JST, +0900) System clock synchronized: yes systemd-timesyncd.service active: yes RTC in local TZ: yes
最後に、再起動してRTCの時間とWindowsの時間を確認。
環境
ー以上ー