gcloud CLI を使って多少は楽にメールデータ移行

  • 2024年6月23日
  • 2024年6月23日
  • GCP
  • 88view
GCP

こんにちはカトーです。

IT技術の進化や流れは非常に早く、普段日常的に使うメールサーバも例外ではありません。以前は大手企業が自前でメールサーバを構築・運用することが多かったですが、現在はGoogle WorkspaceやMicrosoft 365のような大手クラウドサービスを利用してテナント管理を行うことが増えています。メールサーバは現在、インフラの一部と言っても過言ではありません。証明書やレコード、迷惑メール対策を考えると、クラウドサービスの利用は自然な流れかもしれません。しかし、メールデータの移行や管理には様々な問題が発生します。特にPostfixやSendmailのようなメールサーバソフトウェアを使用する場合、少数のアカウントであれば問題ありませんが、管理するユーザーが多くなると手間が増大します。最近では、パブリッククラウドを利用して構築したシステムをオンプレミス環境や定額の国内サーバ、データセンターに戻す動きも増えています。これは特にアカウントやサービスが増え、コスト見直しが必要な場合や、データ転送量や為替レートの変動によってITインフラに関するコストが変動する状況に対応するためです。

まぁ、前置きはさておき、ようするにクラウド間の移行など不定期にあって、社内SE・エンジニアにとって時間がかかり大変なのはデータ移行かと思います。特にGoogle Workspaceでは、データのエクスポートをブラウザから直接ダウンロードするのは非常に手間がかかります。そこで、SSHライクにサーバに接続してデータをダウンロードする手順を忘備録として以下に記録します。どうしても管理画面でブラウザからの作業だけだとすごい時間がかかりますしね。通常のコマンドでサクサク作業してたほうが楽ですし。

【’注意】またこの情報は2024年6月時点の情報なので、Google側で変わることがご了解ください。

gcloud CLI インストール

まずは公式ページから、インストーラーをダウンロードします。
gcloud CLI と検索するで出てきます。
https://cloud.google.com/sdk/docs/install?hl=ja

gcloud CLI インストール

 

https://cloud.google.com/sdk/docs/install?hl=ja

インストーラを起動し、画面の指示に従って操作してください。インストーラにはGoogle LLCによる署名が付いています。
またGoogle Cloud CLIにはPythonが必要です。サポートされているバージョンはPython 3.8~3.12です。デフォルトでは、Google Cloud CLIのWindowsバージョンにはPython 3がバンドルされています。Google Cloud CLIを使用するには、オペレーティングシステムでサポートされているバージョンのPythonを実行する必要があります。インストーラにより、必要なPythonバージョンを含むすべての依存関係がインストールされます。Google Cloud CLIはデフォルトでPython 3をインストールして管理しますが、必要に応じて、バンドル版のPythonをインストールするオプションのチェックボックスをオフにすることで、既存のPythonのインストールを使用できます。既存のPythonインストール環境の使用方法については、公式でもアナウンスがある「gcloud topic startup」をご覧ください。

インストールが完了すると、スタートメニューとデスクトップショートカットの作成、Google Cloud CLIシェルの起動、gcloud CLIの構成を行うオプションが表示されます。シェルを開始するオプションを選択して、インストール環境を構成してください。これにより、ターミナルウィンドウが開き、gcloud initコマンドが実行されます。デフォルトのインストールには、gcloudコマンドでアプリケーションをデプロイするのに必要なApp Engine拡張機能は含まれていません。これらのコンポーネントは、gcloud CLIコンポーネントマネージャーを使用してインストールできます。

gcloud CLI 初期設定

インストールが完了したら、初期設定を行います。コマンドプロンプト(Windows)またはターミナル(Mac/Linux)を開きます。以下のコマンドを入力して、gcloudを初期化します

Googleアカウントにログインするよう求められるので、画面の指示に従ってログインします。続けて使用するプロジェクトを選択します。プロジェクトは、Google Cloudのリソースを管理するための単位です。

 基本的なコマンドの使い方

プロジェクトの設定

使用するプロジェクトを変更するには、以下のコマンドを使います

リソースの管理
Google Cloudでは、様々なリソース(仮想マシン、ストレージ、データベースなど)を管理できます。以下は基本的なリソース管理のコマンドです。

仮想マシンの一覧表示

Google workspaceで組織部門、グループ、ユーザー単位でデータを書き出す

実際に他のサービスに移動する場合、直接というのも考えられますが、まあ一度エクスポートしてから移行先にいれこむという事になります。
公式参照:https://support.google.com/a/answer/100458

ちなみにデータのダウンロードを各ユーザーに任せる場合は、Google データ エクスポートを許可し、ユーザーに Google データをダウンロードする方法を案内が楽ですが、まぁSEがやれってなりますので、管理画面からのエクスポートを記載します。

手順

  1. Google 管理コンソール(admin.google.com)にログイン
  2. 画面の右上の新しいエクスポートを設定をクリック
  3. バックアップの名前をつけ、必要なユーザーや組織を選択してエクスポート開始を押します。
    こちらの環境だと100GB程度で1~2日程かかりました。
  4. アーカイブが表示されますので、あとはそのURLを前記にあったGoogleCLIでダウンロードして利用します。

Google Cloud Storageからローカルマシンにファイルをダウンロードするためのコマンドは以下の通りです。

gs://BUCKET_NAME/OBJECT_NAME は、Google Cloud Storage内のバケットとオブジェクト(ファイル)のパスです。LOCAL_FILE_PATH は、ダウンロード先のローカルファイルのパスです。
例えば、バケット名が my-bucket で、ファイル名が example.txt の場合、ローカルに example.txt をダウンロードするコマンドは以下のようになります:

-r オプションは、ディレクトリ全体を再帰的にコピーするためのものです。
例えば、my-bucket 内の my-folder をローカルの ./my-local-folder にダウンロードする場合は、

これで、指定したバケットからローカルマシンへのファイルやディレクトリのダウンロードができます。

まとめ

メールデータの移行は、どうしても夜間や土日などの業務時間外に行うことが多いですが、IMAPで放置していた場合、メールデータが数十GBに達することがあります。各ユーザーにローカルに保存しておくように通達しても、なかなか徹底されないことがあり、悩ましい問題です。しかし、あらかじめ移行用のコマンドを用意しておけば、多少は楽になるので、頑張りましょう。ええ。

最新情報をチェックしよう!
>システム構築・保守に特化した会社です。

システム構築・保守に特化した会社です。

システムの構築・保守運用「システムガーディアン」 社内システム担当が欲しいが、専属で雇うほどの仕事量はない。 必要な時に必要なだけ頼りたいというお悩みを持つ企業様へ専門知識を持って対応を行っております。 サーバから各種システムまで自社・他社で構築されたシステムに対してサポートを行っております。

CTR IMG