2023年9月9日
掲題の通りです。今更ながら、その辺に転がっているラズパイゼロ(初代、Wi-Fi 付)とその辺に転がっている中華 USB-DAC を使って Spotify Connect 用の環境を整えようと Volumio を入れてみました。 ## 使ったもの * Raspberry Pi Zero WH * Micro SD * 電源(Apple の 5W 1A のやつで十分) * Micro USB ケーブル * USB OTG ケーブル(Micro USB オスから USB A メスに変換するやつ) * Min
2023年8月13日
AWS 認定ソリューションアーキテクト - Associate (SAA-C03) の資格を取得したので学習メモです。 過去の資格に関する記事はこちら * CKAD受検記録【2023年版】 * GCP未経験の新卒2年目がAssociate Cloud EngineerとProfessional Cloud Architectを連続で受検したときの記録 * 新卒エンジニアがCKA取得を目指してKubernetesを勉強したときの記録 続きの記事 → AWS Certified Solutions Arc
2023年7月22日
先日 Synology の NAS を導入したのですが、耐障害性を考慮すると別の拠点とのバックアップが欲しくなってきます。Synology の NAS は QuickConnect を利用することで Synology 社のサーバーを経由することで、自宅のポートを開放せずに構築することができるのがメリットです。バックアップ用途のためだけでにポートを開放するのはアレなので、自宅からのアウトバウンドの通信で定期的にバックアップを行う方法を検討しました。 ## 構成 超シンプル構成です。 !構成図 NAS
2023年7月5日
Fluentd の fluent-plugin-s3 を使ってニフクラのオブジェクトストレージサービスにログをアップロードする時のメモです。 ## ポイント * `s3_endpoint` を指定する * https://jp-east-1.storage.api.nifcloud.com または https://jp-west-2.storage.api.nifcloud.com * 参照: エンドポイント * `force_path_style` を true にする * オブジェクト
2023年6月25日
先日、この半年くらい担当させてもらった仕事が一区切りついたので振り返りをしておこうかなと思います。 全部よくある話だと思いますが、「経験しないとわからないこともあるものだ」ということで、今回は思考垂れ流し回です。 ## とにかく余裕を 取り掛かり始めたころ、諸先輩方にファーストリリースではとにかく最低限のものを作るように言われたが、今ならそれが身に沁みてわかる。スケジュール的に余裕を持たせる効果のほか、エンハンスの伸びしろも大きくなるので、リリース後に機能拡充していくことで対外的な見た目が良くなる効
2023年6月24日
今まで Docker Compose で動かしてたアプリを Kubernetes に移植したときのメモです。 ## Docker Compose では Docker の `--device` オプションと同じ記法で指定できていました。 ```yaml services: app: image: hoge devices: - /dev/gpiomem ``` ## Kubernetes では デバイスプラグインを使用して Kubelet にハードウェアリソースを知
2023年6月14日
タイトルの通りです。これにしばらくハマってしまったので戒めのために書いておきます。 ## tl;dr Ubuntu 20.04 の時と同じ設定ファイルをラズパイの /boot/firmware に入れていたけど反映されていなかった。調べてみたらそのファイルを include する文が Ubuntu 22.04 では消されていた。 ## そもそも config.txt とは? > The Raspberry Pi uses a configuration file instead of the BI
2023年6月13日
今まで kubeadm でクラスター運用をしていたのですが、ラズパイくんたちのお引越しの関係で再構築することにしました。Raspberry Pi 4B 2GB や 3A+(RAM 512MB)も join させたかったこともあり、エッジ環境での動作も想定されている K3s を選びました。 ## 環境 * Raspberry Pi 4B 8GB x 2, Raspberry Pi 4B 4GB x 1, Raspberry Pi 4B 2GB x 1 * SSD ブート * PoE+ 電源
2023年5月15日
前回の記事では SQLAlchemy の Session について解説しました。今回はその応用として、Celery においてどのように Session を管理するかを考えたいと思います。 関連記事: * SQLAlchemyのセッション・トランザクションを理解する * SQLAlchemyで'MySQL server has gone away'が発生した時の対処法2つ ## 結論 以下のように DB 操作を行うタスクのためのクラスを作ります。 ```python from typing impo
2023年5月14日
SQLAlchemy の Session や scoped_session、トランザクションに関して理解していきます。 ## 用語おさらい ### セッション(Session) SQLAlchemy の Session オブジェクトは、ORM マッピングされたオブジェクトの永続化に関する操作を管理するオブジェクトです。 `sqlalchemy.orm.Session` を直接インスタンス化しても良いですが、実環境では sessionmaker を使うことが一般的です。sessionmaker は