Synology NAS上のデータをS3 Glacier Deep Archiveにバックアップする

我が家ではSynology NAS DS224+を利用して写真やドキュメントを保存しています。 特に写真はTBレベルの容量になっており、この写真たちのバックアップ先を探していました。 自分のバックアップの条件を満たすために、Dockerコンテナを利用してS3 Glacier Deep Archiveクラスにバックアップすることとしました。 この記事では、SynologyNAS上のデータをS3にバックアップする方法を紹介します。 はじめに まず自分のバックアップの条件としては下記です。 費用は可能な限り抑えたい 災害にも対応できるように自宅以外(遠隔地)に保管したい バックアップファイルは滅多に参照しない(リストア以外で参照しない) あくまで個人用ファイルなので、リストアに時間がかかっても問題ない jpg/png/mp4など、データのフォーマットのまま保管したい SynologyNASとバックアップ先のディレクトリ構造を一緒にしたい 結論としては、これらの条件をすべて満たすものとして、Dockerコンテナを利用してAWS CLIを利用し、Amazon S3のGlacier Deep Archiveクラスにバックアップすることを決めました。 なぜAmazon S3を利用するのか これは単純に費用が安いからです。また、簡単に遠隔地(例えばアメリカ)にデータを保管できます。 単純なストレージ料金は、米国西部(オレゴン) us-west2で、USD 0.00099/GB = USD 1.01376/TBです。 1$=155円だとした場合、1TBで157円です。安いですね。 実際にはデータ取り出し料金などもあるので、ストレージ料金だけでは正確ではないのですが、ランニング費用としてはこの程度です。 なぜDockerコンテナを利用するのか? Synologyには、Hyper BackupやGlacier Backupといったバックアップアプリが存在します。 特にGlacier BackupではS3 Glacierに簡単にバックアップすることが可能です。 一方で、S3 Glacierの利用はすでにAWS社から推奨されていません(Amazon S3のGlacierクラスを利用することが推奨されている)。 また、S3 Glacierではディレクトリ構造が特殊になってしまうため、AWS-CLIを利用して直接バックアップすることにしました。 事前準備 ここから、バックアップの方法を説明していきますが、まず事前準備として下記を行います。 AWSのアカウント作成 Amazon S3上にバケットを作成 S3のバケットにアクセスできるシステムユーザをIAMで作成 システムユーザのアクセスキーを発行 Synology NASでContainer Managerを導入 このあたりの説明は割愛します。 もしわからなければ、多くのサイトで丁寧に説明されているので調べてください。 Synology NASでイメージの取得 まず、DSM上でContainer Managerからamazon/aws-cli:latestイメージをダウンロードします。 Container Managerを起動して、「レジストリ」タブをクリックして、amazon/aws-cliをダウンロードしてください。 タグはlatestで良いです。 コンテナの作成 コンテナを作成していきます。 Container Managerを起動して、「コンテナ」タブをクリックして、「作成」ボタンをクリックします。 全般設定 下記を指定して「次へ」ボタンを押下します。 ...

1月 9, 2025 · Shika

SynologyNAS上でPiHoleをDockerコンテナで実行する

Pi-holeは、ネットワークレベルで広告をブロックするDNSシンクホールです。 広告を配信しているドメインへのアクセス時に、意図的にDNSでの名前解決を失敗させることで、Pi-hileをDNSとして利用しているネットワーク全体で広告をブロックすることが可能です。 このページでは、Pi-holeをSynology NAS DS224+上で実行する方法を紹介します。 前提 Dockerコンテナ上で実行します Macvlanモードでコンテナを作成します SynologyにContainer Managerは導入済み はじめに まず、Synology NAS上に下記のフォルダを作成します。File Stationを利用して作成してください。 /docker/projects/pihole-compose /docker/pihole /docker/pihole/dnsmasq.d /docker/pihole/pihole プロジェクトの作成 DSM上でContainer Managerを起動し、「プロジェクト」タブをクリックし「作成」ボタンを押します。 作成ウィンドウが現れたら下記の値を入れます。 プロジェクト名:pihole-pj(任意) パス:/docker/projects/pihole-compose ソース:docker-compose.ymlを作成 プロジェクトの作成 docker-compose.ymlは下記を指定します。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 services: pihole: image: pihole/pihole:latest container_name: pihole-macvlan cap_add: - CAP_NET_RAW - CAP_NET_BIND_SERVICE - CAP_CHOWN environment: - TZ=Asia/Tokyo - WEBPASSWORD=<your password> - DNSMASQ_LISTENING=local - WEB_PORT=8000 - DNSMASQ_USER=pihole - FTLCONF_LOCAL_IPV4=<ip of pihole - 192.168.1.XX> volumes: - /volume1/docker/pihole/dnsmasq.d:/etc/dnsmasq.d - /volume1/docker/pihole/pihole:/etc/pihole networks: macvlan: ipv4_address: <ip of pihole - 192.168.1.XX> restart: always networks: macvlan: name: macvlan driver: macvlan driver_opts: parent: eth0 ipam: config: - subnet: "192.168.1.0/24" ip_range: "192.168.1.254/24" gateway: "192.168.1.1" 11行目のパスワードはPi-holeの設定画面にログインするときに必要になります。 15,21行目は、Pi-holeコンテナに割り振るIPアドレスを指定します。同じ値を入力してください。 ウェブポータルの設定 ここは何もチェックを入れないでOKです。 ...

1月 3, 2025 · Shika

Synology NASをインターネットから安全にアクセスする方法:Cloudflare Tunnelを活用する

我が家では、写真やドキュメントの管理・保管に Synology NAS を利用しています。 これまでインターネットから自宅内のSynologyNASにアクセスするために、DDNS(Dynamic DNS)と呼ばれる仕組みを利用していましたが、セキュリティの向上を目的にCloudflare Tunnelを利用した仕組みに変更しました。 この記事ではCloudflare Tunnelを利用してインターネットから自宅内のSynologyNASにアクセスする方法を紹介します。 はじめに Synology NASへのインターネットからのアクセス方法として、公式にはQuickConnectとDDNSを利用した方法が紹介されています( ドキュメント)。 ざっくりと、QuickConnectは設定は簡単だが低速、DDNSは設定が多少複雑だが高速という特徴があります。 我が家ではこれまでDDNSを利用していましたが、DDNSでは設定したドメイン名に自宅のIPアドレスが直接紐づくため、外部に自宅のIPアドレスが公開されている状況でした。 複数のサーバーを自宅内に持っていることもあり、IPアドレスが公開されていることにセキュリティ面で気になったので、自宅のIPアドレスを隠ぺいできるCloudflareTunnelを利用してみました。 Cloudflare Tunnelについて Cloudflare Tunnelは、Cloudflare社のネットワークとcloudflaredデーモンを利用することで、自宅のIPアドレスを公開しない&インバウンドのポート開けをせずに、インターネットから自宅内のサーバーにセキュアに接続できる仕組みです。(下画像、公式サイトの概要図) Cloudflare Tunnelの仕組み 上画像のように、外部からのリクエストはまずCloudflare社のサーバーに届きます。そして、次にPrivateNetwork内のcloudflaredデーモンを起動しているサーバーに届き、最後に目的のサーバーにリクエストが届きます。 今回のSynology NASの例では、下記によってこの仕組みを実現します。 Synology NASのDockerコンテナ上でcloudflaredデーモンを起動 目的のサーバーをSynology NASのDSMに設定 Synology NAS + Cloudflare Tunnelの設定方法 まず、前提としてCloudflareのアカウント登録と、独自ドメインの取得が必要です。 Cloudflareの公式サイトを参考に、アカウントの作成と独自ドメインの登録/移管を行います。 Cloudflare Tunnelの作成 まず、Cloudflareのポータルサイトから、Tunnelの設定を行います。 Zero Trust > ネットワーク > Tunnelsに移動して、「トンネルを作成する」ボタンを押下します。 トンネルの種類で「Cloudflared」を選択し、トンネルに任意の名前を付けて「トンネルを保存」を押下します。 コネクタをインストールして実行する、という画面でDockerを選択し、コマンドをコピーします。 Dockerを選択して、コマンドをコピーする 1 2 # コピーしたコマンド例 docker run cloudflare/cloudflared:latest tunnel --no-autoupdate run --token <token> このTokenをSynology NASのDockerコンテナで起動するcloudflaredデーモンに引数として渡します。 ※この画面を消さずに、次の「Synology NASでCloudflaredデーモンを起動」を実施してください。下記を実施すると、画面下部に認識されたデーモンが表示されます Synology NASでCloudflaredデーモンを起動 Synology NASに移動して、Container Managerを起動してcloudflare/cloudflared:latestイメージをダウンロードしましょう。(詳細は割愛) ...

12月 15, 2024 · Shika

uvによるPythonの環境構築

最近流行りのuvと呼ばれるPythonのパッケージマネージャーを利用してみる。 参考:https://docs.astral.sh/uv/ uvのインストール 公式サイトを参考に、Windows11 WSL Ubuntuに入れていく。 1 curl -LsSf https://astral.sh/uv/install.sh | sh 上記コマンドを実行すると、~/.bashrcの末尾に. "$HOME/.local/bin/env" が追加されていて、自動でuvのPATHを通してくれる。 Pythonの取得 uvを利用して、pythonを取得する。下記はv3.12をインストールしている例。 1 2 3 4 uv python install 3.12 # 確認 uv python list プロジェクトの作成 1 uv init パッケージの導入 1 uv add yaml Pythonの実行 1 uv run main.py

12月 11, 2024 · Shika

DVDのデータをmp4として保存する方法

DVDをmp4ファイルとして保存・リッピングする方法を残しておく。 手順 下記がDVDをリッピングするときの手順。 実施環境はWindows11。 MakeMKVを利用してDVDデータをKMVファイルとして保存する ffmpegを利用して、MKVファイルをmp4ファイルに変換する 1. MakeMKVでKMVファイルとしてDVDを取り込む MakeMKVと呼ばれるソフトウェアを利用して、DVD内のデータをMKVファイルとして保存する。 使い方やインストール方法は公式サイトを参考にすること。 公式サイト:https://www.makemkv.com/ ※MKVファイルはMatroska Video Fileと呼ばれる形式で、映像や音声に加えて字幕データなども保持しているマルチメディアコンテナフォーマット。高画質な動画を保存するための形式としてよく利用されている。 2. MKVファイルをmp4に変換する MKVからmp4への変換は、画像/動画処理で有名なffmpegコマンドで変換可能。 公式サイト(https://www.ffmpeg.org/)からダウンロード/インストールして、PowerShellを起動する。 起動したら下記コマンドで変換可能。 1 ffmpeg -i path/to/input.mkv -c copy path/to/output.mp4

12月 10, 2024 · Shika

Visual Studio Codeの設定

VSCodeに入れている拡張機能や設定を備忘として残します。 基本的にはアカウントの共有機能を使うと便利なのですが、会社のパソコンで個人のGitHubやMicrosftアカウントを紐づけてしまうと、誤爆が発生した場合悲惨なのでここに設定を残します。 拡張機能 拡張機能 概要 WSL WSLでVSCodeを使うときに便利 GitLens 修正をだれが行ったかを確認する Material Icon Theme アイコンがきれいになる markdownlink マークダウン形式のファイルを書く時には必須 Python Pythonを書く時には必須 Pylance Pythonを書く時には必須 Ruff Pythonのlinter json jsonファイルを編集するときに便利 indent-rainbow Pythonのプログラムを書いていると便利 Rainbow CSV CSVファイルを見るときに便利 Hex Editor Binaryファイルを見るときに便利 キーショートカット 機能 キー View: Toggle Maximized Panel Ctrl + Shift + j フォント Source Han Code JPを利用しているので、ダウンロードしてインストールを実施します。 下記のGitHubに詳細が記載されています。 公式GitHub: https://github.com/adobe-fonts/source-han-code-jp?tab=readme-ov-file Source Han Code JPとは Source Han Code JPとは、日本語にも対応したコーディング向けのフォントです。 Adobe社が開発したフォントの「Source Code Pro」と「Source Han Sans JP(源ノ角ゴシック JP)」を組み合わせたものです。 設定ファイル(settings.json) 上記の拡張機能を入れたうえで、最終的に下記の設定ファイルです。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 { "editor.fontFamily": "'Source Han Code JP', Consolas, 'Courier New', monospace", "editor.mouseWheelZoom": true, "workbench.iconTheme": "material-icon-theme", "workbench.colorTheme": "Monokai", "[markdown]": { "editor.formatOnSave": true, "editor.formatOnPaste": true }, "[python]": { "editor.formatOnSave": true, "editor.codeActionsOnSave": { "source.fixAll": "explicit", "source.organizeImports": "explicit" }, "editor.defaultFormatter": "charliermarsh.ruff" }, }

12月 6, 2024 · Shika

Windows11の初期設定

日本語配列キーボードで英字配列化する方法 ※下記はGoogle検索でAIが答えてくれた回答を多少変更したもの。 Windows11でキーボードを英語化するには、次の手順に従います。 [スタート] > [設定] > [時刻と言語] > [言語と地域] の順に選択します。 目的のキーボードがある言語(※自分の場合は「日本語」)を選択して、[言語のオプション] を選択します。 [キーボードレイアウト]の[レイアウトを変更する]を選択します。 英語キーボードを選択して[OK]ボタンを選択して再起動します。 スペース横のキーの動作を変更する方法 ※下記はSurfaceLaptop4で、日本語配列キーボードを英字配列として利用する場合です。 SurfaceLaptop4では、スペースの左側に「無変換」キーで、右側に「変換」キーが配置されています。 「無変換」キーで英字入力、「変換」キーで日本語入力になるようにキー操作を変更します。 「無変換」/「変換」キーのマッピング 英字配列として日本語配列を利用している場合、 「無変換」/「変換」キーが正しく「無変換」/「変換」キーとしてマッピングされなくなります。 Microsft Power Toysを利用して、再マッピングを行います。 ※インストールは、公式サイトを参考にしてください。 PowerToysを開いて、「Keyboard Manager」にて、下記のキーバインディングを設定します。 「無変換」キー ⇒ 「IME Non-Convert」 「変換」キー ⇒ 「IME Convert」 ※自分の構成だと、「無変換」は「VK 235」で、「変換」キーは「Unassigned」でした。 これで、「無変換」/「変換」キーが、正しく「無変換」/「変換」キーとしてマッピングされました。 「無変換」/「変換」キーの割り当て 下記の手順で、割り当てを実施します。 画面右下のIMEボタンを右クリックして、「設定」ボタンを選択する 「キーとタッチのカスタマイズ」を選択する 「キーの割り当て」をONにする 無変換キーで「IME-オフ」を選択 変換キーで「IME-オン」を選択 再起動 これで、「無変換」キーで英字入力、「変換」キーで日本語入力になります。

11月 30, 2024 · Shika