要は備忘録。
これまで初代妖狐鯖として使っていたVPSサーバーをOS入れ替えて余生として現妖狐鯖のバックアップデータ保管庫としていました。
が、現在進行中のリプレース作業構成設計中に「バックアップのストレージ用途だけで年2万強1はオーバースペックだよな…」と思うようになり、色々考えた結果Let’s encryptのDNS-01認証の構築ついででさくらのオブジェクトストレージを使おうという事になりました。
ついでに言うと、余生として入れ替えたOSがよりによってCentOS 8で、当時はその後あんなことになるとは思ってなかったですからね…(遠い目
環境の構築
まずはさくらのクラウドサービスでバックアップ保管用のオブジェクトストレージ バケットと、そのアクセス用パーミッション アクセスキーを作成します。
このあたりはマニュアルどおりにやるだけなので手順は省略。
続けてAWSコマンドラインインターフェース(AWS CLI)をインストールします。
さくらのオブジェクトストレージはAmazon S3 API互換APIが使用可能となっており、一部操作を除いてAWS CLIを使うことができます。
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
$ unzip awscliv2.zip
$ sudo ./aws/install
バックアップ同期に使用するアカウント(root)で設定ファイルの作成をします。
# aws configure
AWS Access Key ID [None]: (パーミッションのアクセスID)
AWS Secret Access Key [None]: (パーミッションのアクセスシークレットキー)
Default region name [None]: (オブジェクトストレージのリージョン名)
Default output format [None]: json
試しにオブジェクトストレージにアクセスします。
この際、AWS CLIは必ずエンドポイントURL指定オプションを入れます。あらかじめ ~.aws/config にendpoint_urlを指定することでオプション値の省略も可能です。
# aws --endpoint-url=https://<ENDPOINT FQDN> s3 ls s3://<BUKET NAME>/
エラーもなくバケットにあるファイルやフォルダーが表示されれば成功です。
バックアップデータの同期
AWS CLIを使用してローカルのバックアップデータをオブジェクトストレージに同期保存させます。必ず --dryrun オプションを付けて同期テストを行い動作確認をしましょう。
# aws -endpoint-url=https://<ENDPOINT FQDN> s3 sync --delete <BACKUP DIRECTORY for LOCAL> s3://<BUKET NAME>/<BACKUP DIRECTORY>/
あとはこれを crontab 等で定期的に実行させればOK。
妖狐鯖管理人は変態なので、同期処理をするだけのスクリプトと、それを実行する制御スクリプトの2本立ててで処理をしています。