Above & Beyond

日々のアウトプット記録

CloudReadyを入れてみた

Windows11がリリースされました。うちにあるPCも2台、既に移行したのですがその話はまた別の機会に。

今回は、Windows11の要件でTPM2.0サポートというのがあって、それに対応できなかったPCを CloudReady を入れて使えるようにしてみた、という話です。 なお、今回移行したPCはこちらになります。発売が2011/09/23なので10年前。。。

www.inversenet.co.jp

インストールするOSはこちら。 ブラウザベースで使うのが前提なので、ネットワーク接続がないと使えないですし、回線速度も遅いとストレスが溜まると思います。

www.neverware.com

なお、CloudReady は32bit CPUのサポートは終了していますので、PCが32bit CPUの場合はインストールできません。

使えるかを確認

起動できなかったりデバイスの互換性で使えない機能があったりするので、いきなりインストールするのは怖いですね。 なのでUSBメモリから起動して、一通り動作を確認して問題なければインストール、という流れをおすすめします。 幸い、CloudReady はその流れで使うことができるので安心です。

USBメモリは8GB以上のものを用意します。 自分は32GBのものを使いましたが、容量があっても保存先に使えるわけではないので16GB位あれば十分かと思います。 手順は Installing CloudReady に書かれています。 日本語じゃないと分からん、という方はこちらの記事がわかりやすいと思います。

pc.watch.impress.co.jp

起動用のイメージでUSBメモリを作成(作成用ツールが提供されているので楽ちんです)して、起動すればOKです。 なお、起動用メディアの作成には20分くらいかかります。

起動時に聞かれることもキーボードと言語くらいで至ってシンプル。 自分の場合は特に何事も起こらず、普通に起動できました。

インストール

自分の場合はざっと使ってみた感じ、

  • ネットワークは問題なくつながっている
  • ディスプレイ表示も特に問題ない
  • Chrome(Chromium)でのWebページ表示も特に崩れなどもない
  • YoutubeSpotifyを開いて再生してみたけど、動画も再生できるし、サウンドも出力されている
  • キーボードとマウスも普通に動いている
  • 日本語入力もできる

というのが確認できたので、そのままインストールしちゃいました。

尚、ここでやっておかなくて、後で使えないことがわかったものとして

  • 印刷(プリンタも古いのでサポートされておらず、印刷できなかった)
  • Bluetoothキーボード(ログイン時にはBluetoothが有効になっていないのか、キー入力できなかった)
  • Linux環境

というのがあります。 自分の場合は他のPCでやればいいという代替手段があるのでこれでもなんとかなります。 印刷できないと困るとかBluetoothキーボードしかない、という場合はこのあたりもちゃんと確認したほうがいいでしょう。

デスクトップ

とりあえずインストールして、アプリも追加した状態のデスクトップのスクショを貼っておきます。

f:id:kabukawa:20211010115118p:plain

シンプルすぎておもちゃっぽく見えますが、操作感は悪くないです。

設定画面のスクショも貼っておきます。

f:id:kabukawa:20211010121622p:plain:w300 f:id:kabukawa:20211010121702p:plain:w300 f:id:kabukawa:20211010121719p:plain:w300

  • ネットワークはOpenVPN / L2TPによるVPN接続ができます。仕事で使っているVPNは問題なく接続できました。
  • 仕事で使っているGoogleアカウントだと、一部機能の変更などが制限されている可能性があります。
  • 接続済みデバイスはどうやっても設定できませんでした。
  • 壁紙は標準で用意されているものもキレイですが、自分で好きなものに変えるのももちろんできます。
  • アプリについては後述します。

こちらは詳細設定画面のスクショ。

f:id:kabukawa:20211010121741p:plain:w300 f:id:kabukawa:20211010121757p:plain:w300

  • ネットワークファイル共有、Sambaによる共有ドライブが使えます。うちはラズパイで簡易ファイルサーバを立てているのでこれはありがたい。
  • プリンタも現時点では使えるようになっていません。古いからなのか、ネットワークプリンタだからなのか。スキャンも同様です。 support.brother.co.jp
  • Linux開発環境はインストール中にエラーになって、どうやっても起動できませんでした。(ググって見つけた方法でも解決できず)

アプリ

当たり前ですが、ブラウザで表示できるサービスはそのまま使えます。 なので、普通に使う分にはあまり困らないと思います。 画像の加工もWeb上でできるサービスはありますし、電子書籍もKindke Cloud Readerを使えば読めます。

今回のPCの場合はLinux開発環境が動かないので、開発用PCとして使うには少し工夫が必要です。その話を少し書いておきます。

エディタ

Chromebookで使えるエディタというのをググると、大抵はLinux開発環境かAndroid環境で使えるエディタということで、ネイティブで使えるエディタの情報はあまりありません。 今回のPCの場合、Linux開発環境が動かないのでネイティブのエディタを探す必要があります。そこで見つけたのがこれ。

chrome.google.com

高機能ではないですが、キーボードマクロもありますし、必要な機能が一通り揃ったエディタです。 メニューはこちらのページを参考に日本語化しています。

blog.aroundit.net

f:id:kabukawa:20211010132739p:plain ただ、文字コード変換機能はないので、SJISで作成されたテキストなどは日本語部分が文字化けします。 その場合は苦肉の策としてファイルブラウザからChromiumにファイルをドロップして、それをコピペして対応してます。 (croshから立ち上げるshell環境にiconvはない)

ターミナル

Linux開発環境が使えなくても、crosh という端末環境があり、ここで shell と打つとbashが使えるようになります。

f:id:kabukawa:20211010141212p:plain:w300 f:id:kabukawa:20211010141230p:plain:w300

基本的なコマンドは使えるので Gitbashでできることで満足できる人にはこれでも十分に感じると思います。(自分は十分でした)

vimも入っていて、GUIが駄目でもこっちを使うという考え方もありますね。

f:id:kabukawa:20211010141533p:plain:w600

git

croshから立ち上げるshell環境にgitコマンド(自分の環境では2.31.0)が入っています。 GUIで扱えるようなものは無いようです。

python

croshから立ち上げるshell環境にpythonコマンド(自分の環境では3.6.12)が入っています。 pipは入っていないので、昔ながらの以下の方法でインストールします。

curl -kL https://bootstrap.pypa.io/get-pip.py | python

AWS CLI

pipが入ればAWS CLI(v1ですが)がインストールできます。

Azure CLI

こちらはシンボリックリンクの階層が深いのか、インストールがエラーになってしまいました。 croshから立ち上げるshell環境はreadonlyになっている箇所もあるようなので、それが原因かもしれません。 深追いしても仕方がないのでCloud Shellで逃げようかと思います。

データベース接続

MySQLであれば Chrome MySQL Admin というアプリがあります。

chrome.google.com

f:id:kabukawa:20211010134311p:plain:w300 f:id:kabukawa:20211010134321p:plain:w300

MySQL以外も使いたい場合は JackDB - SQL Database Client というのがあります。 こちらはUIがSQLクライアントと同様のレイアウトで違和感なく使えると思いますが、ユーザー登録が必要になります。

chrome.google.com

f:id:kabukawa:20211010134753p:plain:w600

統合開発環境

Linux環境が起動できないとローカルでVS Codeが使えないと思ました。 でも、そもそもOS自体がネットワーク接続を前提としているならクラウドベースのものを使えばいいじゃん、という事に気づきました。

最初に思いついたのはGitHub Codespacesですが、個人アカウント向けにはプランがないですし、無料枠もないです。(β期間は無料、というのはさておき) なので候補から一旦外しました。

というわけで見つけたのがこちら。

www.gitpod.io

クラウド起動してブラウザ上で使えるVS Code、という感じのサービスです。

f:id:kabukawa:20211010140119p:plain:w600

メニューが無い以外はまんまVS Codeですね。

GitHubとの連携もできるし、なんと50時間までの無料枠があります。 オープンソース化されていてセルフホストも可能なので、外部にソースを出せない!みたいな縛りのある企業でも導入しやすいかと思います。 ライブシェアが使えない制限もありますが、それを解消するための取り組みも進めているようなので、そのあたりは今後に期待ですかね。

最後に

今回、CloudReady を入れてみて、改めて思ったのは

  • ローカルにアプリをインストールしなくても普段の利用はあまり問題ない
  • 今どきの開発環境を構築するならローカルじゃなくて良い
  • よく考えると紙に印刷するなんて年に数回がいいところなので、実はプリンタ使えなくてもあまり困らない
  • クラウド上にアプリのインストール情報が保存されるので、他のPCでも同じ環境を再現しやすい

ということでした。

こういう視点で見ると、CloudReady で仕事をするというのも、そんなに悪くない選択なのかもしれません。 もちろん、誰にでもおすすめできるものではないですし他のOSには一日の長があるわけですが、全員が高機能を必要としていないというのはあるなぁ、とも思います。 実際、自分の仕事としては最近はドキュメント書いたりソース読んだりちょっとスクリプト書いたり、という感じで重い処理をしているわけではないですし、ブラウザで完結できるものも多いです。 そういう用途で考えて、ローカルになにかインストールしないと駄目みたいなことは少ないですし、今回見てきた範囲で十分に成り立つのではないかとも思うのです。

ということで、以外に仕事でも使えそうっていうのが、今回わかったのは良かったなと思います。

転職してもうすぐ3ヶ月なので、どんな会社なのかを書いてみる

今年の6月に転職したので、どんな会社なのか、みたいなことを書いてみます。

Joinした会社

エメラダ株式会社、というFintechベンチャーに転職しました。

f:id:kabukawa:20210829150534j:plain www.emerada.co.jp

自社サービスとしてエメラダ・マーケットプレイスというSaaSを提供しています。

emerada-marketplace.com

2016年の創業なので、今年6年目に入ったところですね。 開発エンジニアはまだ少なく、業務委託の人も入れてなんとか回しているという感じです。 システム提供だけではなく、機械学習を使ったPoCなどのサービスもしていて、データサイエンティストもいたりします。

何をしているか

インフラのリードという事になっていますが、規模が小さいので何でもやるというのが正直なところです。 既に構築されたインフラが有るので、今は新規でなにか構築するというよりは今あるものをちゃんと動かす方に力を入れています。 とはいえ、大きめの新規開発が予定されていないわけではないので、「この3ヶ月は」というところですね。

インフラはMicrosoft Azure上に構築されています。どんな感じの構成なのかはこのあたりに少し書かれています。

ledge.ai

サービス提供され、利用者も増加しているので、安定稼働というのが今の自分の再優先課題です。

勤務

基本的に、全員がリモートワークです。

勤務時間は10時~18時(昼休憩45分)で7時間15分ですが、朝9時から朝会があるので実質的には9時~18時です。 みなし勤務時間は8時間で、1日あたり45分分の残業代がみなし勤務代として払われているので、8時間勤務と思えばそんなものか、という感じです。 深夜と休日分の残業代も勿論支払われますが、18時から22時までは残業代は出ないので、 そういう意味では時間内にきっちり仕事を終らせるという意志がないと不満が残るかもしれません。

試用期間は3ヶ月。休暇関係は、有給休暇は7ヶ月目に付与。付与日からの繰越は2年が限度。半休制度あり。

オフィス自体は南青山にありますが、昨今の状況から見ても、恐らく殆ど行く機会がないと思います。 会社の周りはこんな雰囲気です。出勤していたら、帰りがけに散歩とか気持ちいいかもしれませんね。

f:id:kabukawa:20210610130043j:plain

ちなみにオフィスは10階にあります。 眼下には青山公園の緑が続いていて高さのある建物があまりないので、見晴らしはかなりいいなと思います。

技術スタック

前述の通り、インフラはAzure上に構築されていますが、一部AWSも利用しています。 メインのサービスはAzure上で動いていて、AWSはファイル保存などで使っているという棲み分けのようです。 インフラ構築はTerraform等は使われていませんが、使用したいとは考えられていたようです。

インフラ

AKSを中心とした構成になっています。 VMに結構コストが掛かっているのでFunctions等に置き換えたほうが良いと思う部分もあり、近いうちに構成を少し変えるかもしれません。

Azure

azure.microsoft.com

azure.microsoft.com

azure.microsoft.com

azure.microsoft.com

docs.microsoft.com

docs.microsoft.com

azure.microsoft.com

AWS

メールとかファイルはAWS上で管理しています。

  • S3
  • CloudFront
  • KMS
  • Route53
  • SES
  • SNS

Heroku

コーポレートサイトはHerokuでビルドと動作確認をしたものをスタティックなHTML等にエクスポートしてS3にデプロイする、という構成になっています。

ソースコード管理

GitHub を使っています。プライベートリポジトリになっているので、開発チームに入らないと見えません。

アプリケーション

ユーザーから見える画面などはRuby on Rails (react on webpacker) で実装されています。 バッチ処理はSidekiqで動かしているものと、Kubernetesのcronjobで動かしているものがあります。 金融機関が提供する、いわゆる銀行APIからのデータアグリゲーションはNodejsとTypescriptで実装されています。

CI/CD

Azure DevOpsのPipelineで構築されています。ちなみに、チケット管理などもAzure DevOpsで行っています。

その他

その他で使っているものはこんな感じです。

仕事の進め方

エンジニアは毎朝9:00から30分間、オンラインで朝会があり、そこでタスクの状況などを確認します。 それ以外の時間は、必要に応じてオンラインでのミーティングが設定されたりもしますが、基本的には各自での作業になります。 2週間のスプリントを軸に開発の作業を進めていて、機能開発はその単位で進めています。 スプリント終わり(2週に1回、金曜の夕方)には振り返りをして、次のスプリントで何をするかを決めています。

エンジニアだけではなく、全社で週に一回月曜の朝に30分間のオンライン朝会もあり、ビジネスチームなどの作業の状況なども把握できる場があります。 全体の動きが見渡せるというのは良いなと思っています。

更に、月末の金曜にはFireside Chatが行われていて、会社の向かう方向性とか何をしようとしているのかみたいな話を聞く場になっています。 オンラインになって、周りが見えなくなる不安があるかもしれませんが、こういう場があると少し安心するのではないでしょうか。

エンジニアは数が少ない分、お互いの顔を見ながら仕事をする感じで、雰囲気は悪くないです。

まとめ

取り敢えず3ヶ月やってきてみて、試用期間で切られちゃうという事は無さそうなので少し安心しています。 とはいえ、色々やらなきゃいけないことも有って、楽ではないというのも事実。 日々、全力で取り組む、みたいな気持ちがないと続かないかなとは思います。 このあたりは長年やってきたSESとは違うところですね。 個人的には、3ヶ月を振り返ると「大変だけど、面白い」と思っているので、引き続き頑張っていこうかなと思っています。 (そのためには更に新しいことにもチャレンジし続けないといけないわけですが)

面白そうと思った人がいたら、是非一緒に頑張りましょう。 決して怖くないので、気軽に応募してもらえれば!

www.emerada.co.jp

PCを買った

デスクトップとしては実に8年ぶりに新しいPCを買ったので、メモを残しておく。(参考になるかは不明)

購入したもの

PC

購入したのはこれ。ASUSベアボーンPC。メモリとストレージは付いてないので別途購入。 初めてのNUCとは言いながらも、長く使いたいというのもあるのでWindows11を見据えてこのスペックのものを選択。 サイズは1辺12cm弱でかなり小さい。

バイス スペック
CPU AMD Ryzen R7 4800U モバイル プロセッサー
周波数(最大) 2.3GHz(4.0GHz)
キャッシュ 8MB(L3キャッシュ)
メモリ 最大64G(DDR4-3200 (PC4-25600)
SO-DIMMスロット×2(空きスロット×2)
グラフィックス Radeon Graphics(CPU内蔵)
ビデオメモリ メインメモリと共有
ドライブスロット 1 x M.2スロット(Type M 2280)SATA及びPCIe & NVME対応
SATA 6Gb/s ポート
LAN 1000BASE-T/100BASE-TX/10BASE-T
Intel Wi-Fi 6 AX200(Gig+
Bluetooth 5
インターフェース HDMII 2.0×1
DisplayPort 1.4×3
(内2つは正面と背面のUSB 3.2 Gen2 Type-C)
USB 3.2 Gen2 Type-C×2(正面1個、背面1個)
USB 3.2 Gen1 Type-A×3(正面1個、背面2個)
カードリーダー 3-in-1: Micro SD/ Micro SDHC/ Micro SDXC
オーディオ オーディオジャック×1(コンボマイクヘッドホンジャック)

サイズ 幅115mm×奥行き115mm×高さ49mm 約0.7kg

メモリ

メモリはこれを買った。32GB1枚でいいかと思ったが、Ryzen APUはVRAMをメインメモリと共用する為デュアルチャネルでメモリアクセスできないと厳しそうだったので追加で買って計64GB。

項目 スペック
規格 DDR4 SO-DIMM 動作電圧:1.2v
容量 32GB
速度 3200Mhz PC4-25600 CL値:CL22-22-22-52

ストレージ

ストレージはこれ。M.2 2280 PCIe3.0×4 NVMe1.3。これにした理由はTBWが1665と同価格帯のものに比べて多く、長いこと使えそうというのが理由。 性能はベンチマーク結果を下で載せるので参考にしてください。

項目 スペック
インターフェース PCIe Gen3x4
読込 最大3400MB/s、書込:最大3000MB /s、TBW:1665
最大記憶容量 1TB
NVMe 1.3対応

OS

OSは古い方のPCからライセンス移行した。Windows10 Professional。

開封の儀

外箱と開けたときの本体梱包、付属品はこんな感じ。 本体、電源アダプタ、VESAマウント用フレーム、ドライバDVD、簡易マニュアル、各種ネジといったところ。

f:id:kabukawa:20210719183852j:plain

PD電源からの供給はできないため、電源アダプタは必須。本体サイズと比べるとそこそこ大きく見えるが、ディスプレイ裏に設置するならあまり気にならないかも。 ちなみに、USB-Cから他の機器に対しての電源供給(例えばスマフォへの充電みたいなこと)はできる。

本体の大きさはこんな感じ。比較のために単3乾電池を並べてみた。

f:id:kabukawa:20210719184142j:plain

セットアップ

最初にメモリとSSDを取り付け。本体をひっくり返し、四隅のネジを取り外して底の部分を横に少しスライドすると中にアクセスできる。 メモリは2枚の取り付け位置が少しオフセットしている。(取り付けやすさと放熱のためだと思われる) SSDはメモリと反対側に取り付け。固定は付属してきたネジで。

f:id:kabukawa:20210719184857j:plain

最初は上記で良いと思っていたが、メモリをデュアルチャネルにしたいのでメモリを追加して、SSDの発熱が気になったのでヒートシンクを取り付け。

f:id:kabukawa:20210723192036j:plain

ヒートシンクは大きなもののほうが効果が高いのはわかっていたが、設置位置からして高さが5mm以上になると3.5インチSATA 6Gbインターフェースに挿すSSDと干渉しそうだったので高さ2mmの純銅製のものを選択。ただ、効果はやはり薄いのでもう少し大きなもののほうが良かったかなと思っている。

設置

VESAマウント用フレームが付いているので、ディスプレイ裏に設置することにした。とはいえ、ディスプレイ裏には既にWifiルータを設置していて場所が塞がっていたため、増設プレートを追加で購入して設置することにした。

実際の設置風景はこんな感じ。ケーブルの取り回しがかなり汚いので、このあたりはおいおい整備していきたい。 設置方法としては、本体に付属のネジでVESAマウント用フレームを増設プレートにネジ止めし、本体の裏側に引っ掛けるようにネジ(本体に付属)を付けて、VESAマウント用フレームに引っ掛けるように取り付ける。 分かってしまえば特に難しいことはない。尚、VESAマウント用フレームは横に長いので、設置場所はちょっと注意が必要。

f:id:kabukawa:20210723192305j:plain

これで設置も完了。

インストール

OS

OSはWindows10。 やりかたはMicrosoft公式の Windows 10 のダウンロード からイメージ作成ツールをダウンロードして、インストールイメージ(今回はUSBメモリ)を作成し、インストールするだけ。

注意点としては、ライセンスを旧PCから移行するので、ローカルユーザーでインストールすること。やり方は この辺 に書いてある。要するに、Microsoftアカウントと紐付いたデジタルライセンスをハードウェア変更したということで他のPC用にする、というだけ。デジタル認証されたライセンスがあればオンラインでかんたんに移行できる。

ドライバ

ドライバDVDからインストールすればいいが、PCにDVDドライブはないし、DVDドライブ付きの旧PCはライセンスを移行してしまったので使えない。 ということでASUSのサイトからドライバをダウンロードして対応した。

www.asus.com

アプリケーション

インストールしたアプリはこんな感じ。 ブラウザのたぐいはアカウント同期をしているので移行は極めて楽。 VS Codeも同期を有効にしているので環境を再現するのが楽。

Storeアプリ * Ubuntu 18.04 * Windows Terminal * Slack

TwitterYoutubeはPWAアプリとして使っている。

各種設定

大体ここに書いた手順で再設定。

github.com

ベンチマークなど

SSDはこのくらいの速度。酷使すると70℃近くまで上がるが、普段は40℃前後なので普通に使う分にはそこまで心配しなくても大丈夫そう。 でも、もうちょい冷却はしたいかな。

SSD

f:id:kabukawa:20210724155114p:plain

CPU

f:id:kabukawa:20210724155331p:plain

メモリ

f:id:kabukawa:20210724155403p:plain

GPU

f:id:kabukawa:20210724155439p:plain

感想

取り敢えず、今のところはかなり静か。 負荷の高い処理をするとファンが動き出すのでそれなりの音はするけど、並行で使っているノートPCと比べれば小さい。 いまのところ、結構満足度は高い。

良かったところ

  • とにかく小さい
  • 普段はとても静か
  • フルスペックにしても11万円くらい。
  • 業務するには十分な性能

改善したいところ

  • 排熱。特にSSDはM2とSATAを同時に付けるときは結構きにしたほうがいい。
  • 小さい分、エアフローが結構厳しい。
  • 負荷が上がったときのファンの音。それなりに音はする。
  • 拡張まわり。USBが3口というのは結構ギリギリなので、ハブは有ったほうがいい。