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