• 検索結果がありません。

目次 OpenStackのこれまで OpenStackの機能概要 セキュリティ機能とストレージ機能 プロジェクト管理機能 OpenStackの特徴と主要コンポーネント コンポーネントのAPI 操作 注意 : 本テキストで扱う OpenStack は RDO(Havana) がベースとなります 2

N/A
N/A
Protected

Academic year: 2021

シェア "目次 OpenStackのこれまで OpenStackの機能概要 セキュリティ機能とストレージ機能 プロジェクト管理機能 OpenStackの特徴と主要コンポーネント コンポーネントのAPI 操作 注意 : 本テキストで扱う OpenStack は RDO(Havana) がベースとなります 2"

Copied!
44
0
0

読み込み中.... (全文を見る)

全文

(1)

ver1.0 2014/7/26

Etsuji Nakai

open

stack

Open source software to build public and private clouds.

(2)

目次

OpenStackのこれまで

OpenStackの機能概要

セキュリティ機能とストレージ機能

プロジェクト管理機能

OpenStackの特徴と主要コンポーネント

コンポーネントのAPI操作

注意:本テキストで扱うOpenStackは、RDO(Havana)がベースとなります。

(3)
(4)

OpenStackとは?

OpenStackは、Amazon EC2/S3相当のクラウドインフラを構築するためのオープン

ソースソフトウェアです。

-

マルチテナント型のIaaS (Infrastructure as a Service) 環境を提供します。

-

類似のオープンソースには、CloudStack、Eucalyptusなどがあります。

2010年末に「米RackSpace社」と「NASA」が共同で、OpenStackプロジェクトを立ち

あげて、開発をスタートしました。

-

RackSpaceが自社開発で利用していた「Swift」(S3相当の機能を提供)とNASAが作りかけて

いた「Nova」(EC2相当の機能を提供)をオープンソース化して提供して、それらをベースにコ

ミュニティモデルでの開発を開始しました。

単なる仮想化管理ツールではなく、

「パブリッククラウドと同等の機能」を

実現することがOpenStackの目的

(5)

これまでの開発状況

これまで、年に2〜3回程度のメジャーバージョンアップが行われています。

当初は、RackSpace社が開発を主導していましたが、2012年にOpenStackの開発を支

える公式の非営利団体である「OpenStack Foudation」が設立されました。

2011

2012

2013

2014

Austin

2010/10/21

Bexar

2011/02/03

Cactus

2011/04/15

Diablo

2011/09/22

Essex

2012/04/05

Folsom

2012/09/27

Grizzly

2013/04/04

Havana

2013/10/17

「最低限動くもの」を

目指して地道に開発

OpenStack Foudation設立

Icehouse

201

4/04/17

(6)

(参考) OpenStack Foundationの設立

(7)

OpenStack Foundation Platinum Members

https://www.openstack.org/join

(2014/01の情報)

(8)

OpenStack開発への貢献企業

http://activity.openstack.org/dash/releases/index.html?data_dir=data/havana

開発者の所属企業別の

OpenStack Havana変更数

開発者の所属企業別の

OpenStack Havana問題解決数

(9)

OpenStackディストリビューション

コミュニティで開発されたOpenStackのソースコードを元にして、独自のインストーラ

を組み合わせて簡単にインストールできるようにパッケージ化された「OpenStackディ

ストリビューション」があります。

-

複数の企業/団体から、いくつかのディストリビューションが提供されています。

開発者向けのOpenStackディストリビューション

-

DevStack : 最新のソースコードをダウンロードしてOpenStack環境を構成するシェルスクリプ

ト群が提供されています。

その他の無償で利用できるOpenStackディストリビューション

-

Debian Linux、openSUSE、Ubuntu Linux : OpenStackパッケージを標準で同梱

-

RDO : Red Hatが提供するRHEL / Fedoraで利用可能なディストリビューション

(10)

RDOの特徴

OpenStack Foundation

主な活動内容

-

RHEL/Fedora用のRPMパッケージを提供

http://repos.fedorapeople.org/repos/openstack/

-

Puppetベースのインストーラ「Packstack」を提供

-

QAフォーラムを運営(Red Hatの開発者が回答してくれることもあります。)

OpenStackを創る人々

のコミュニティ

RHEL/FedoraでOpenStackを

使う人々のコミュニティ

http://openstack.redhat.com

(11)
(12)

OpenStackが提供する環境

OpenStackのユーザは、Webコンソール

やREST APIを用いて、次のようなコン

ピューティングリソースを利用します。

-

仮想ネットワーク

-

仮想マシンインスタンス

-

ブロックボリューム

各ユーザは特定の「プロジェクト」に所

属します。

-

プロジェクト内でリソースを共有します。

-

プロジェクト全体でのリソース使用量の上

限設定、リソース使用状況のレポーティン

グなどが可能です。

データ領域

ブロックボリューム

仮想ルータ

仮想スイッチ

外部ネットワーク

プロジェクト環境

OpenStackユーザ

OS領域

仮想マシンインスタンス

(13)

OpenStackの仮想ネットワークモデル

プロジェクトごとに仮想ルータを用いて、プライベートなネットワークを構成します。

-

仮想ルータの背後に任意の数の仮想スイッチを作成して、接続します。

-

それぞれの仮想スイッチは、プライベートIPの独立したサブネットを持ちます。

仮想マシンインスタンス起動時に、接続する仮想スイッチを選択します。

-

DHCPでプライベートIPアドレスが割り当てられます。

-

同じプロジェクトの仮想マシンインスタンス間は、プライベートIPで通信できます。

仮想スイッチ

192.168.101.0/24

プロジェクトA

仮想ルータ

外部ネットワーク

プロジェクトB

仮想ルータ

仮想スイッチ

192.168.102.0/24

(14)

プライベートIPとフローティングIP

外部ネットワークと通信する際は、仮想マシンインスタンスに「フローティングIP」を

割り当てます。

-

外部ネットワークのサブネット上で、フローティングIPとして利用可能なIPアドレスをプールし

ておきます。

-

仮想ルータ上で、フローティングIPとプライベートIPのNATが行われます。

-

フローティングIPを割り当てない場合でも、仮想マシンインスタンスから外部ネットワークへの

接続は可能です。(仮想ルータのIPアドレスを代表IPとして、マスカレード接続します。)

Webサーバー

DBサーバー

プライベートIP

プライベートIP

フローティングIP

外部ネットワークからは

フローティングIPで接続

インスタンス同士は

プライベートIPで接続

(15)

仮想マシンインスタンスの起動

仮想マシンインスタンスを起動する際は、次の項目を指定します。

-

インスタンスタイプ

-

テンプレートイメージ (*)

-

接続する仮想ネットワーク

-

セキュリティグループ

-

キーペア

外部ネットワーク

テンプレート

複製

複数ネットワーク

接続も可能

セキュリティグループ

形式

説明

raw

フラットなイメージファイル

AMI/AKI/ARI

Amazon EC2が利用する形式

qcow2

Linux KVMが利用する形式

VDI

VirtualBoxが利用する形式

VMDK

VMwareが利用する形式

VHD

Hyper-Vが利用する形式

(16)

テンプレートイメージの準備方法 (1)

Oz(仮想マシンイメージの作成に特化したOSインストールツール)で作成する

-

OpenStack用イメージ作成のデファクトツール

-

https://github.com/clalancette/oz/wiki

ディストリビューション標準のテンプレートイメージを利用

-

FedoraのOpenStack対応イメージ

-

http://fedoraproject.org/en/get-fedora-options#clouds

(17)

テンプレートイメージの準備方法 (2)

Red Hat Enterprise Linux (RHEL)では、RHEL6.4より、OpenStackで利用可能なテン

プレートイメージが提供されています。

-

これをダウンロードして、OpenStackに登録することで、すぐにRHELの仮想マシンを起動する

ことができます。

(18)
(19)

セキュリティグループ

仮想マシンインスタンスの受信パケットを「セキュリティグループ」でフィルタリング

します。

-

セキュリティグループを作成して、「プロトコル、宛先ポート、送信元IP」などの条件で受信を

許可するパケットを指定します。

HTTPの受信許可

Pingの受信許可

セキュリティグループ「default」の

仮想マシンからは任意の受信許可

-

仮想マシンインスタンス起動時に

適用するセキュリティグループを

指定します。

SSHの受信許可

送信は自由に可能

(20)

キーペアによるSSHログイン認証

事前に公開鍵を登録しておき、仮想マシンインスタンス起動時にゲストOSに埋め込み

ます。

-

公開鍵の登録は、ユーザ個別に行います。複数ユーザでキーペアを共有する形にはなりません。

ユーザ情報データベース

仮想マシンインスタンス

②公開鍵をゲストOSに埋め込み

秘密鍵

公開鍵

①公開鍵を事前に登録

③秘密鍵で認証

(21)

インスタンスタイプとディスク領域の関係

デフォルトで用意されるインスタンスタイプは次のようになります。

-

ルートディスクは、テンプレートイメージを複製した後に指定のサイズまで拡張されます。

管理者ユーザは任意のインスタンスタイプを定義することができます。

-

一時ディスクとスワップディスクを与えると、ゲストOSからは下図のように認識されます。

-

これらのディスク領域は、仮想マシンインスタンスを停止するとすべて破棄されます。(永続保

存が必要なユーザデータは、ブロックボリュームに保存します。)

インスタンスタイプ

仮想CPU

メモリ

ディスク

ルート

ディスク

一時

スワップ

ディスク

m1.tiny

1

512MB

1GB

0

0

m1.small

1

2GB

20GB

0

0

m1.medium

2

4GB

40GB

0

0

m1.large

4

4GB

80GB

0

0

m1.xlarge

8

8GB

160GB

0

0

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

vda 252:0 0 20G 0 disk

└─vda1 252:1 0 20G 0 part /

vdb 252:16 0 5G 0 disk /mnt

vdc 252:32 0 1G 0 disk [SWAP]

スワップディスク

ルートディスク

一時ディスク

(22)

仮想マシンインスタンスのスナップショット

仮想マシンインスタンスの「スナップショット」により、ルートディスクを複製して保

存することができます。

OS領域

テンプレートイメージ

テンプレートイメージから

仮想マシンインスタンス起動

インスタンスの

スナップショット

OS領域

ルートディスクを複製して

スナップショットを作成

スナップショットから

仮想マシンインスタンス起動

(23)

ブロックボリュームの使い方

ブロックボリュームは、仮想マシンインスタンスを停止してもそのまま残るので、永続

的なデータ保存領域として使います。

データ領域

③スナップショット作成

④スナップショットを複製して

新たなブロックボリュームを作成

②仮想マシンインスタンスに

接続してデータ領域として使用

データ領域

他の仮想マシンインスタンスに

再接続可能(同時接続は不可)

①新規ブロックボリュームを作成

OS領域

OS領域

(24)

ブロックボリュームの使い方

OS領域

仮想マシンインスタンスに

接続してゲストOS起動

テンプレートイメージを複製して

ブロックボリュームを作成

OS領域

テンプレート

イメージ

OS領域

スナップショット作成

OS領域

複製

ブロックボリュームにゲストOSをインストールして、ブロックボリュームから仮想マ

シンインスタンスを起動することも可能です。

-

仮想マシンインスタンスを停止しても、OS領域への変更が破棄されずに残ります。

-

スナップショットを作成しておき、仮想マシンインスタンスを起動するタイミングで、スナップ

ショットから新しいブロックボリュームを用意することも可能です。

(25)
(26)

プロジェクト単位のリソース使用レポート

(27)
(28)
(29)

OpenStackの主要コンポーネント

OpenStackでは、機能別にソフトウェアをモジュール化して開発が進められています。

-

Swift : オブジェクトストレージ

ファイル単位で出し入れするだけの単純なファイルストア

-

Nova : 仮想マシンの配置決定と起動・停止処理

-

Glance : 仮想マシンイメージの管理

バックエンドにSwift、その他のストレージを使用

-

Cinder : ブロックボリュームの提供

サンプル実装では、Linux LVM + iSCSIソフトウェアターゲットを使用

外部のストレージ装置をバックエンドにすることも可能

-

Keystone : 統合認証機能

-

Neutron : 仮想ネットワーク管理機能(Quantumから改名)

仮想ネットワークの作成を外部のプラグインモジュール(SDN製品)に移譲

標準提供のプラグインでは、Linux bridge、もしくは、Open vSwitchを使用

(30)

コンポーネント間の連携処理

Webコンソールで操作をすると、REST API経由で各モジュールに指示が飛びます。ま

た、クライアントは、各モジュールのREST APIを直接操作することも可能です。

-

これにより、プログラムコードからの呼び出しによる環境操作の自動化が可能になります。

仮想マシン

イメージ

Nova

Compute

Compute

Nova

Glance

Horizon

Neutron

管理ネットワーク

LUN

仮想ネットワーク作成

仮想マシン起動

ブロックボリューム提供

(iSCSI)

テンプレート

イメージ保存

MySQL

Network

Node

Nova

Compute

Cinder

Keystone

Swift

パブリックネットワーク

クライアントPC

Webコンソールアクセス

テンプレート

イメージ検索

テンプレート

ダウンロード

QPID

LUN

LUN

(31)

OpenStackの特徴

APIで操作する「Programmable Infrastructure」の提供

-

既存のGUI・ワークフローに縛られたくないユーザ層の獲得

-

プログラムによるインフラ環境の自動構築・変更に対応

スケーラビリティを意識した疎結合アーキテクチャ

-

コンピューティングノードの追加が容易/コントローラの負荷分散が可能

-

システム設計、運用・管理にはこれまでとは違うノウハウが必要

Driver/Pluginによる外部コンポーネントとの連携

-

既存インフラと連携・統合するための作りこみが可能

-

サードパーティ製品連携のエコシステム

(32)

http://www.slideshare.net/gmccance/cern-data-centre-evolution

(33)
(34)

コンポーネントのAPI操作のパターン

コンポーネントのAPIを操作する際は、2種類のパターンがあります。

-

ユーザがダッシュボード経由で各コンポーネントのAPIを操作、もしくは、直接にAPIを操作

-

あるコンポーネントが他のコンポーネントに処理を依頼するためにAPIを操作

データベース

MySQL

メッセージング

QPID

共有データ保存

エージェント通信の

メッセージ中継

Horizon

(ダッシュボード)

Keystone

(ユーザ認証)

Neutron

(仮想ネットワーク)

(ブロックボリューム)

Cinder

(仮想マシン)

Nova

(テンプレート)

Glance

テンプレートイメージ

ブロックボリューム

仮想ネットワークへの接続

APIアクセス

Webブラウザ

アクセス

(35)

API操作のユーザ認証

コンポーネントのAPIを操作する際は、ユーザ認証が必要となります。

-

ユーザ、もしくは、コンポーネントは、KeystoneからAPI操作を許可する「トークン」を取得し

た後に、操作対象コンポーネントのAPIにリクエストを送信します。(各コンポーネントは、自

分自身を表す「ユーザ」がKeystoneに事前に登録されています。)

-

Keystoneからトークンを取得する際に、操作対象コンポーネントのAPIのURLを併せて取得しま

す。したがって、ユーザは、KeystoneのAPIのURLだけを知っている必要があります。

Horizon

(ダッシュボード)

Keystone

(ユーザ認証)

Neutron

(仮想ネットワーク)

Cinder

(ブロックボリューム)

Nova

(仮想マシン)

(テンプレート)

Glance

(36)

Keystoneのコマンド操作例 (1)

OpenStack標準のコマンドラインツールは、環境変数でユーザ/パスワード/操作対象テ

ナント/Keystone APIのベースURLを指定します。

-

Keystone APIは、管理ユーザ用と一般ユーザ用でURL(ポート番号)が異なります。

-

引数でユーザ等を指定した場合は、そちらが優先されます。

-

次はデフォルトの管理ユーザ「admin」でKeystoneを操作する例です。

# cat keystonerc_admin export OS_USERNAME=admin export OS_TENANT_NAME=admin export OS_PASSWORD=714f1ab569a64a3b export OS_AUTH_URL=http://172.16.1.11:35357/v2.0/ export PS1='[\u@\h \W(keystone_admin)]\$ '

# . keystonerc_admin # keystone user-list

+---+---+---+---+ | id | name | enabled | email | +---+---+---+---+ | 589a800d70534655bfade5504958afd6 | admin | True | test@test.com | | 3c45a1f5a88d4c1d8fb07b51ed72cd55 | cinder | True | cinder@localhost | | f23d88041e5245ee8cc8b0a5c3ec3f6c | demo_admin | True | | | 44be5165fdf64bd5907d07aa1aaa5dab | demo_user | True | | | cd75770810634ed3a09d92b61aacf0a7 | glance | True | glance@localhost | | a38561ed906e48468cf1759918735c53 | nova | True | nova@localhost | | 157c8846521846e0abdd16895dc8f024 | neutron | True | neutron@localhost | +---+---+---+---+

管理ユーザの場合は

ポート番号35357

(37)

Keystoneのコマンド操作例 (3)

各コマンドラインツールは、「helpサブコマンド」でサブコマンドの一覧や各サブコマ

ンドの詳細が確認できます。

# keystone help ← サブコマンドの一覧

(38)

仮想マシンインスタンスの起動

NovaのAPIに仮想マシンインスタンスの起動を指示すると、Glance / Netronと連携し

て、インスタンスの起動と仮想ネットワーク接続の処理が行われます。

-

Novaは、Glance APIを通じて、テンプレートイメージをコンピュートノードにコピーします。

-

同じく、Neutron APIを通じて、仮想マシンインスタンスを仮想ネットワークに接続します。

Horizon

(ダッシュボード)

Keystone

(ユーザ認証)

Neutron

(仮想ネットワーク)

Cinder

(ブロックボリューム)

Nova

(仮想マシン)

Glance

(テンプレート)

テンプレートイメージ

のダウンロード

仮想ネットワークへの接続

(39)

仮想マシンインスタンスの起動 (1)

次は、novaコマンドで仮想マシンインスタンスの起動に必要な情報を確認しています。

# . keystonerc_demo_user # nova flavor-list

+----+---+---+---+---+---+---+---+---+---+ | ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | extra_specs | +----+---+---+---+---+---+---+---+---+---+ | 1 | m1.tiny | 512 | 0 | 0 | | 1 | 1.0 | True | {} | | 2 | m1.small | 2048 | 20 | 0 | | 1 | 1.0 | True | {} | | 3 | m1.medium | 4096 | 40 | 0 | | 2 | 1.0 | True | {} | | 4 | m1.large | 8192 | 80 | 0 | | 4 | 1.0 | True | {} | | 5 | m1.xlarge | 16384 | 160 | 0 | | 8 | 1.0 | True | {} | +----+---+---+---+---+---+---+---+---+---+ # nova keypair-list +---+---+ | Name | Fingerprint | +---+---+ | mykey | 31:8c:0e:43:67:40:f6:17:a3:f8:3f:d5:73:8e:d0:30 | +---+---+ # nova image-list +---+---+---+---+ | ID | Name | Status | Server | +---+---+---+---+ | 702d0c4e-b06c-4c15-85e5-9bb612eb6414 | Fedora19 | ACTIVE | | +---+---+---+---+ # nova secgroup-list +---+---+ | Name | Description | +---+---+ | default | default | +---+---+ # nova net-list +---+---+---+ | ID | Label | CIDR | +---+---+---+ | 843a1586-6082-4e9f-950f-d44daa83358c | private01 | None | | d3c763f0-ebf0-4717-b3fc-cda69bcd1957 | private02 | None |

NovaからGlance APIを呼び出して

情報を取得しています。

NovaからNeutron APIを呼び出して

情報を取得しています。

(40)

仮想マシンインスタンスの起動 (2)

次は、確認した情報を元に、仮想マシンインスタンスを起動しています。

# nova boot --flavor m1.small --image Fedora19 --key-name mykey \

--security-groups default --nic net-id=843a1586-6082-4e9f-950f-d44daa83358c vm01 +---+---+ | Property | Value | +---+---+ | status | BUILD | | updated | 2013-11-22T06:22:52Z | | OS-EXT-STS:task_state | scheduling | | key_name | mykey | | image | Fedora19 | | hostId | | | OS-EXT-STS:vm_state | building | | flavor | m1.small | | id | f40c9b76-3891-4a5f-a62c-87021ba277ce | | security_groups | [{u'name': u'default'}] | | user_id | 2e57cd295e3f4659b151dd80f3a73468 | | name | vm01 | | adminPass | 5sUFyKhgovV6 | | tenant_id | 555b49dc8b6e4d92aa74103bfb656e70 | | created | 2013-11-22T06:22:51Z | | OS-DCF:diskConfig | MANUAL | | metadata | {} | (中略) +---+---+ # nova list +---+---+---+---+ | ID | Name | Status | Networks | +---+---+---+---+ | f40c9b76-3891-4a5f-a62c-87021ba277ce | vm01 | ACTIVE | private01=192.168.101.3 | +---+---+---+---+

(41)

仮想マシンインスタンスの起動 (3)

「カスタマイズスクリプト」を使用する際は、スクリプトを記載したファイルを用意し

て、「--user-data」オプションで指定します。

-

次の例では、カスタマイズスクリプトを指定して仮想マシンインスタンスを起動した後、フロー

ティングIPを割り当てて、実際にログインしています。

# cat hello.txt #!/bin/sh

echo 'Hello, World!' > /etc/motd

# nova boot --flavor m1.small --image Fedora19 --key-name mykey \

--security-groups default --nic net-id=843a1586-6082-4e9f-950f-d44daa83358c \ --user-data hello.txt vm01

# nova floating-ip-list

+---+---+---+---+ | Ip | Instance Id | Fixed Ip | Pool | +---+---+---+---+ | 172.16.1.101 | None | None | ext-network | | 172.16.1.102 | None | None | ext-network | | 172.16.1.103 | None | None | ext-network | | 172.16.1.104 | None | None | ext-network | | 172.16.1.105 | None | None | ext-network | +---+---+---+---+ # nova add-floating-ip vm01 172.16.1.101

# ssh -i ~/mykey.pem fedora@172.16.1.101

The authenticity of host '172.16.1.101 (172.16.1.101)' can't be established. RSA key fingerprint is b7:24:54:63:1f:02:33:4f:81:a7:47:90:c1:1b:78:5a. Are you sure you want to continue connecting (yes/no)? yes

(42)

ブロックボリュームの作成と接続

CinderのAPIを通して、ブロックボリュームの作成・削除・スナップショット作成など

が可能です。

-

仮想マシンインスタンスにブロックボリュームを接続する際は、NovaのAPIに指示を出すと、

NovaがCinderのAPIを経由して連携処理を行います。

Horizon

(ダッシュボード)

Keystone

(ユーザ認証)

Neutron

(仮想ネットワーク)

Cinder

(ブロックボリューム)

Nova

(仮想マシン)

Glance

(テンプレート)

ブロックボリューム

(43)

ブロックボリュームの作成と接続

次は5GBのボリュームを作成して、仮想マシンインスタンスに接続/取り外しを行う例で

す。

# cinder create --display-name volume01 5 # cinder list

+---+---+---+---+---+---+---+ | ID | Status | Display Name | Size | Volume Type | Bootable | Attached to | +---+---+---+---+---+---+---+ | 78b4d23b-3b57-4a38-9f6e-10e5048170ef | available | volume01 | 5 | None | false | | +---+---+---+---+---+---+---+ # nova volume-attach vm01 78b4d23b-3b57-4a38-9f6e-10e5048170ef

+---+---+ | Property | Value | +---+---+ | device | /dev/vdb | | serverId | f40c9b76-3891-4a5f-a62c-87021ba277ce | | id | 78b4d23b-3b57-4a38-9f6e-10e5048170ef | | volumeId | 78b4d23b-3b57-4a38-9f6e-10e5048170ef | +---+---+

(44)

open

stack

参照

関連したドキュメント

そこで本解説では,X線CT画像から患者別に骨の有限 要素モデルを作成することが可能な,画像処理と力学解析 の統合ソフトウェアである

心臓核医学に心機能に関する標準はすべての機能検査の基礎となる重要な観

突然そのようなところに現れたことに驚いたので す。しかも、密教儀礼であればマンダラ制作儀礼

が作成したものである。ICDが病気や外傷を詳しく分類するものであるのに対し、ICFはそうした病 気等 の 状 態 に あ る人 の精 神機 能や 運動 機能 、歩 行や 家事 等の

Jabra Talk 15 SE の操作は簡単です。ボタンを押す時間の長さ により、ヘッドセットの [ 応答 / 終了 ] ボタンはさまざまな機

口腔の持つ,種々の働き ( 機能)が障害された場 合,これらの働きがより健全に機能するよう手当

操作は前章と同じです。但し中継子機の ACSH は、親機では無く中継器が送信する電波を受信します。本機を 前章①の操作で

Google マップ上で誰もがその情報を閲覧することが可能となる。Google マイマップは、Google マップの情報を基に作成されるため、Google