1.はじめに
先日、会社別で開催されているGoogle Cloud Platform(GCP)のトレーニングに参加させて頂きました。
GCP初学者やGCPをこれから活用したい方を対象としたトレーニングで、GCPの基礎と主要サービスについて、座学とハンズオンを通して学習することができました。
2.記事の目的
この記事では、このトレーニングで得られた知識を整理することで、
今後のGCP関連業務に役立てることを目的とします。
また、私と同様にGCP初心者の方々にとって、少しでも参考になる情報を提供できれば幸いです。
3. Google Cloud Platform(GCP)の概要
GCPはGoogleが提供するクラウドサービスです。
※クラウドサービス...
インターネットを使ってコンピュータの機能やデータを提供するサービスのこと。
GCPは、他のクラウドサービスと同様に、サーバーやストレージなどの機能を提供します。
加えて、Google Workspaceとの連携や、高度なデータ分析が可能です。
日常生活でも慣れ親しんだGoogleの技術を、クラウド上で最大限に活用できるのが特徴です。
4.クラウドコンピューティングの歴史とGCPの立ち位置
クラウドコンピューティングは、インターネットの普及と共に発展しました。
そして、企業のITインフラストラクチャを大きく変革してきました。
初期のクラウドサービスは、主にサーバーやストレージといった基本的なインフラストラクチャ(IaaS)の提供が中心でした。
しかし、GCPはGoogleが長年培ってきたインフラストラクチャに加え、データ分析や機械学習といった最先端の技術も提供します。
これにより、クラウドコンピューティングの可能性を大きく広げ、独自の成長を遂げています。
5.クラウドサービスの提供モデル(IaaS, PaaS, SaaS, CaaS)
クラウドサービスには、IaaS、PaaS、SaaS、CaaSなどの種類があります。
提供モデル | 説明 |
---|---|
IaaS (Infrastructure as a Service) |
サーバーやストレージなどの 基本的なインフラ機能を提供するサービス |
PaaS (Platform as a Service) |
アプリケーションを開発・実行 するための環境を提供するサービス |
SaaS (Software as a Service) |
ソフトウェアをインターネット経由で 利用できるようにするサービス |
CaaS (Containers as a Service) |
コンテナ技術を利用して アプリケーションを実行するためのサービス |
(ちなみに、私はCaaSについて本トレーニングで初めて知りました。)
6.GCP独自のネットワーク(リージョン、ゾーン)
GCPのネットワークは、リージョンとゾーンという単位で構成されています。
-
リージョン
地理的な場所のこと(例:東京、大阪) -
ゾーン
リージョン内にあるデータセンターのこと
(イメージとして、渋谷、新宿、梅田、心斎橋とかにデータセンターがある感じでしょうか。)
GCPでは、これらのリージョンとゾーンを組み合わせて、
冗長性と可用性を高め、安定したシステムを構築できます。
7.Googleの取り組みについて
環境保護への取り組み
Googleは、データセンターの省エネ化や再生可能エネルギーの利用など、
環境問題に積極的に取り組んでいるとのことでした。
セキュリティへの取り組み
GCPは、Googleが長年培ってきた高いセキュリティ技術を基に構築されており、安全に利用することができます。
オープンソースへの取り組み
Googleでは、Kubernetesなどのオープンソース技術の開発にも貢献しています。
GCPでもこれらの技術を活用できます。
※Kubernetes…
コンテナを用いてアプリケーションを実行、管理するソフトウェア
8. GCPリソースの整理と管理
GCPでは、仮想マシンやストレージなどの「リソース」を効率的に管理するために、階層構造を採用しています。
階層 | 名称 | 説明 |
---|---|---|
1 | リソース | GCPで使う個々の要素のこと。 例:仮想マシン(Compute Engineインスタンス) ストレージ(Cloud Storage) データベース(Cloud SQLインスタンス)など |
2 | プロジェクト | リソースをまとめるための単位。 例:Webサイト用、アプリ開発用など、 目的ごとにプロジェクトを作って管理します。 |
3 | フォルダ | 複数のプロジェクトをまとめるための単位。 例:部署ごと、チームごとにフォルダを作り、 関連するプロジェクトをまとめます。 |
4 | 組織ノード | フォルダをまとめるための最上位の単位。 企業全体でGCPを使う場合に、全体を管理するためのものです。 |
これらの階層構造を利用することで、
GCPのリソースの整理、アクセス権限やコストなどを効率的に管理できます。
9.GCPのIAM
GCPのIAM(Identity and Access Management)は、
誰がどのGCPリソースにアクセスできるかを管理するための仕組みです。
IAMにはポリシーとロールがあります。
-
IAMポリシー
「誰」が、どの 「リソース」に「アクセス」できるか?を定義したルールです。
-
IAMロール
IAMポリシーの中で使用される、「役割」です。
「閲覧者」「編集者」「管理者」などの「役割」ごとに、許可される操作が定義されています。
IAMポリシーでアクセス権を定義する際に、どのIAMロール(役割)を割り当てるかを指定することができます。
少しややこしいですが、ポリシーにロールをアタッチしていくイメージで、権限を管理できます。
IAMポリシーとIAMロールを適切に設定することで、GCPリソースへの不正アクセスを防ぎ、安全なシステムを構築できます。
10.GCPへのアクセス方法
GCPは、以下の方法で操作できます。
-
Google Cloud コンソール
WebブラウザからGCPを操作 -
Cloud SDK
コマンドラインツールでGCPを操作 -
Cloud Shell
ブラウザ版のCloud SDK -
API
プログラム(ソフトウェア)使ってGCPを操作 -
Google Cloud アプリ
モバイルアプリからGCPを操作
11. GCPの主要サービスの紹介
サービス名 | 説明 |
---|---|
Compute Engine | GCPで仮想マシンを提供するサービスです。 |
VPC (Virtual Private Cloud) |
GCP内に作成できるプライベートなネットワークのことです。ルーティングやファイアウォールなどのネットワーク設定を自由に行えます。 |
Cloud Storage | GCPでオブジェクトストレージを提供するサービスです。オブジェクトストレージは、データを「オブジェクト」という単位で管理するストレージ方式です。様々な種類のデータを保存するために利用できます。 |
Cloud SQL | GCPでリレーショナルデータベースを提供するサービスです。 |
Cloud Spanner | 分散リレーショナルデータベースを提供するサービスです。 |
Firestore | NoSQLドキュメントデータベースを提供するサービスです。 |
Cloud Bigtable | NoSQLビッグデータのデータベースを提供するサービスです。 |
BigQuery |
データ分析プラットフォームを提供するデータウェアハウスサービスです。 |
Google Kubernetes Engine | GKEとも。GCPでKubernetesを利用するためのサービスです。Kubernetesは、コンテナ化されたアプリケーションを管理するためのオープンソースのプラットフォームです。 |
Cloud Run関数 | コンテナ化されたイベント駆動型コード実行サービスです。データ処理やAPIの実行など、様々な用途に利用されています。Cloud FunctionsとCloud Runが統合され、Cloud Run関数となりました。 |
12. ハンズオン演習の内容
QwikLabs というシステムを利用し、実際にGCPを操作することが出来ました。
当時GCPを操作したことがなかった私にとって、この演習はとても有意義な時間となりました。
以下がハンズオン演習の内容となります。
1. Cloud Marketplaceの利用
GCP上で利用できる様々なツールやソフトウェアを探す方法を体験しました。
2. Compute EngineとVPCネットワーキングの設定
仮想サーバー(Compute Engineインスタンス)の作り方・動かし方を学び、
ネットワークの設定(VPCの作成、サーバー間の通信設定など)を体験しました。
3. Cloud StorageとCloud SQLの利用
データを保存する場所(Cloud Storageバケット)の作り方や、
データベース(Cloud SQLインスタンス)の作り方を学び、
作ったデータベースにデータを保存したり、取り出したりする方法を体験しました。
4. Cloud Runの利用
Cloud Runを利用し、作成したプログラムを、サーバー等のインフラ構築を気にせず実行する方法を学びました。
また、プログラムをCloud Runで動かすための準備(コンテナイメージのアップロードなど)を体験しました。
13.トレーニング中に分からなかった単語
トレーニング中に分からなかった単語があったので、メモに残しておきます。
-
ステートレス
コンピューターシステムやアプリケーションにおいて、過去の処理や状態を記憶しない、または依存しない性質のこと -
ステートフル
コンピューターシステムやアプリケーションにおいて、過去の処理や状態を記憶して、それに基づいて動作する性質のこと -
Artifact Registry
GCP上でコンテナイメージやその他のビルド成果物を安全に保存、管理、デプロイするためのサービスのこと -
マイクロサービス
アプリケーションを「小さな部品」ごとに分解し、それぞれの部品を独立して開発・管理できるようにする考え方 -
イベントドリブン
何か出来事(イベント)が起こったら、それに応じてプログラムが自動的に反応する仕組みのこと
14. まとめ
このトレーニングでは、GCPの基礎から主要サービスまで、幅広い内容を学ぶことができました。
特に、GCPを触ったことがなかった私にとって、ハンズオン演習でGCPを実際に操作できたことが貴重な経験となりました。
この経験を活かし、今後の業務に役立てると共に、GCPのさらなる活用に挑戦していけたらなと思います。