views4GCPのストレージサービスについてまとめてみた。Exp:58182017年12月より現職。インフラ担当としてIaC、Kubernetesを勉強していた。2019年11月よりコンサルタントに転向。好きな言語はJavascript。好きなOCGカードは《超弩級砲塔列車グスタフ・マックス》。Networkは、プロジェクトごとに独立しているのですが、「共有VPC」機能を使うことで複数プロジェクトをまたぐVPCを構築可能です。Networkを延長する」イメージで利用できます。Identityアカウントの作成」と「共有VPCの構成」を解説します。Identityアカウントの作成」を解説します。後者は、実際に共有VPCを構成し、複数のproject間の内部IPアドレスに基く疎通確認を実施します。networkを構成することができる機能です。ネットワークを指定することで、プロジェクトの境界を越えた内部IPアドレスサブネットワークを構成することができます。Networkごとのリソース管理、サブネット設計が必要となります。プロジェクト共有VPCは、2種類のGCPプロジェクトから成り立ちます。プロジェクト図にすると、以下のようなイメージです。プロジェクトに見せているイメージです。Networkを保有し、提供する側(ホスト)となるプロジェクトです。firewallルール、ルートといったリソースはこちらが管理します。Networkを「使わせてもらう側」のプロジェクトです。プロジェクトのリソースを利用することはできますが、リソースそのものは見えず、変更もできません。プロジェクトは1つのみです。※日本語版公式ドキュメントの構成イメージ画像がリンク切れしているため、英語版の相当部分をご覧ください。Identityアカウントの取得が必要となります。Suiteのこと)です。edition)を取得する方法で説明します。利用することも検討してみてください。Identityです。project組織の識別名として、インターネットドメイン名を指定する必要があります。そのドメイン名を所有していることをGoogleに対して示すため、DNSレコードを追加できることが必要です。Identity組織登録を制限することがあります。その場合、登録時に以下のような画面が表示されます。Identityを登録しようとした場合、上記画像の画面が表示され、失敗します。確実な方法としては、「ドメイン名の登録後、ある程度の期間に渡ってWebサイト運用実績のあるドメイン名」を指定することでしょう。Suite組織として登録が可能です。projectの「IAMと管理」>「ID」メニューから開始します。Suiteを利用されている場合、このリンクが表示されません。Suiteから発行されたGoogleアカウントであるため」です。表示されていない場合は、「個人で取得したgmailのGoogleアカウント」(組織に所属していない)から、同様の操作をおこなってください。「お申し込み」リンクから、以降、ウィザード形式で設問に沿って情報を入力していきます。「お客様について」「お客様の事業について」、それぞれメールが受信可能なメールアドレス、組織名、地域を指定します。ここで指定するメールアドレスは、作成される組織のドメイン名とは無関係に指定できます。ウィザード(2)では、組織のドメイン名として指定したいドメイン名を入力します。ここで指定するドメイン名に対応するDNSゾーンの管理権が必要です。ドメイン名の所有権確認は、登録が完了した後のコンソールで指定することになります。ここでは、「apps-gcp-test.cloud-ace.jp」という、「cloud-ace.jp」ドメイン名のサブドメインを指定しています。組織の管理者となるアカウント名、パスワードを指定します。Consoleにログインすることになります。「同意して登録」を押し、登録エラー画面とならなければ登録に成功しています。最初に指定したメールアドレスに、以降の手続を案内するメールが届きます。ご案内」という件名のメールが届くので、メールに掲載されているリンクを開き、登録時に指定した新しいアカウントでログインします。ID」が選択された画面が開きます。画面の指示に従って、ドメイン名の所有権確認を実施します。Suite版のヘルプをご覧ください。作成された組織の選択方法についてプロジェクト選択ツール上部・左側のドロップダウンに、「組織なし」と「(追加したドメイン名)」が表示されます。この選択ツールで、ビルのアイコン(組織)、フォルダのアイコン(フォルダ)、三角形ドットのアイコン(各プロジェクト)を切り替え、各々の設定を変更することができます。いかがでしたでしょうか。ドメイン名を保有していること、というハードルこそあれ、案外あっけなく登録できたのではないかと思います。共有VPCを使ったプロジェクト間通信の実践ここからは実際に共有VPCを構成し、両プロジェクト下のインスタンス同士の疎通確認まで実施します。プロビジョニング」に基いています。Networkの共有を実現します。プロジェクトにあります。プロジェクトで管理されます。Networkを保有しているプロジェクトを指します。VPC管理者)」権限を、作業者のアカウントに付与します。→作業者にプロジェクト作成権限が無ければ、あわせて付与します。プロジェクトを作成します。Networkを作成します。Networkを指定します。Identityによって組織を作成したことで、組織レベルのIAM編集が可能になります。Console上部のプロジェクトセレクターから「組織」(ビルのアイコンで示されるFQDN名のリソース)を選択することで、組織レベルの権限が編集可能となります。ここでは、共有VPCを作成させたいメンバーに対し、「共有VPC管理者」のroleを付与します。作成した組織を選択します。普段、プロジェクト名が表示されているヘッダ部分に、組織名とビルのアイコンが表示されている状態となります。この状態で、ハンバーガーメニュー(三)から「IAMと管理」を開くことで、「組織のIAM権限」を編集することができます。VPC管理者(共有VPC管理者)」の権限を付与します。組織に追加したメンバー右端のエンピツアイコンを選択します。「別の役割を追加」を選択します。管理者」を選択します。Manager」>「プロジェクト作成者」も付与しておきます。前述の通り、操作対象として組織が選択されている状態で、「IAMと管理」>「リソースを管理」から「プロジェクトを作成」します。プロジェクトの役割がひと目でわかるように付与するとよいでしょう。プロジェクトを作成しました。APIを有効化しておきます。Networkを作成します。プロジェクトを選択します。ネットワークを作成」します。Networkと変わりありません。Networkとして扱えるようになります。任意(ここでは172.16.0.0/16を選択しています)他項目はデフォルトで、「作成」します。Networkには、defaultネットワークとは異なり、基本的なruleが設定されていません。Network」>「ファイアウォールルール」で、以下2点のルールを作成しておきます。優先度は今回影響しないため、どちらもデフォルトの1000で問題ありません。Networkを共有させます。共有VPCの有効化に必要なステップが表示されます。プロジェクトに指定されます。1分程度経過し、準備が整うと、右ペインに共有対象の選択画面が表示されます。「すべてのサブネットを共有する」こともできますが、今回は「個々のサブネット」、対象は先程作成した「apps-gcp-shared-subnet-tokyo-0」のみを指定します。「続行」を選択します。プロジェクトを選択します。今回は、先程作成した「apps-gcp-shared-vpc-service」プロジェクトのみ指定します。ユーザー)が付与されます。構成が完了すると、以下の画面に遷移します。プロジェクトに対し、前項で指定した権限を持っているユーザー」が追加されていることがわかります。これで、2プロジェクト間の共有設定は完了です。ネットワークを使用するインスタンスを作成してネットワークの疎通状況を確認してみましょう。Engine(以降GCE)インスタンスを作成する場合、非・共有VPC環境とは異なる選択肢が出現します。プロジェクトを選択します。インスタンス」>「作成」と選択、次を指定します。インターフェイスを追加」→次の画像をご覧ください。プロジェクトでは、「このプロジェクトのネットワーク/共有ネットワーク」を選択できるようになります。プロジェクトにとってこのサブネットは「自分自身の保有するネットワーク」であるため、この選択肢は表示されません。インターフェイスダイアログを閉じます。「作成」ボタンで、インスタンスの作成を確定します。プロジェクト側インスタンスで指定するパラメータは、単独プロジェクトでsubnetworkを指定する場合と同様です。プロジェクトを選択します。インスタンス」>「作成」と選択、次を指定します。共有VPCを使用しない場合と同様の、ネットワーク選択フォームが表示されます。ネットワークである「apps-gcp-shared-network-0」、「apps-gcp-shared-subnet-tokyo-0」を指定し、「完了」、インスタンス作成を確定します。疎通確認いよいよ、両プロジェクトの準備が整いました。ネットワークに接続しているため、内部DNSを利用した名前解決が可能です。お互いの内部IPアドレスを、以下のホスト名で解決できます。コードMARKDOWN_HASH9beb21dd57cb6b6b8ad42f5bfe3ac6daMARKDOWN_HASHpingを送信するホスト名は、以下の対応関係になります。apps-gcp-service-pj-instance.c.apps-gcp-shared-vpc-service.internal各インスタンスへコンソールからSSH接続し、お互いにpingが通ることを確認します。サービスプロジェクトを跨いだ、内部IPアドレスでの通信が実現できました。おわりにいかがでしたでしょうか。組織リソースのIAM設定を除いて、特に難しい点は無かったのではないかと思います。Suiteを契約することなく共有VPCを構成してみることが可能となり、テンポよく検証していただけるかと思います。Suiteをご契約いただいている方は、そのアカウントを用いて、同様に共有VPCを構成できます。この機会に共有VPCを是非、お試しください。