GCPのアカウントを取得して早数ヶ月。
実は全然使ってませんでした。
だって、分かんないんだもん。
ということで、久々にGCPを触ることにしたので、AWS利用者がGCPを触るときの方法を触りながらまとめます。
とりあえず①にしましたが、②以降があるかは不明です。
ここを見ればいいという説もある
AWS プロフェッショナル向け Google Cloud Platform
開設
- Googleアカウントを持っていればすぐに開設可能
- もちろんG Suiteアカウントでも可能
- 無料で利用するにもクレジットカードの登録→請求アカウントの作成が必要
- 請求アカウントは自身のGoogleアカウントに紐づくGCP請求用のアカウント
- プロジェクトと呼ばれる単位で権限分離などが可能
- プロジェクトの単位=AWSのRootアカウント
- 1つの請求アカウントにはいくつもプロジェクトを紐付け可能
- 請求情報はプロジェクトと呼ばれる単位で決められる
- G Suiteなどを使っていると、「組織」というのがあるが、これは必ず使う
- 使うことで色々捗る
- アカウント開設方法は以下(多分今でも変わってないはず)
- プロジェクトを作成すると3つのIDが作られる
- プロジェクト名:アカウント内で一意
- プロジェクトID:GCP内で一意。ときたまプロジェクト名と一致することもあるが、大抵は適当な数字が追加される
- プロジェクト番号:GCP内で一意。12桁の数字で表され、プロジェクト間の権限管理などで使用する。
AWS | GCP | |
---|---|---|
請求 | AWSアカウント単位 | プロジェクト単位 |
一括請求 | Consolidated Billing | 請求アカウントに一緒に紐付け |
ユーザ管理
- IAM(AWSと名前一緒)で管理
- 個人で使う分にはあまり気にしなくていい
- 複数人で使う場合は、各プロジェクトのIAMにユーザを追加していく
- G Suiteだとこれがすごく楽
- AWSと異なり、現状(2017/4現在)、権限設定が雑
- アクションごとに設定できない
- 大まかに「オーナー」「閲覧者」「編集者」の3つで構成される
- まだ指定できないAPIもあるので、それについてはプロジェクトに対して権限付与しないといけない
AWS | GCP | |
---|---|---|
プロジェクトのユーザ管理 | IAM | IAMと管理 |
権限付与 | ロール&ポリシー(アクション単位) | 「オーナー」「編集者」「閲覧者」から選ぶ |
エリア | リージョン | リージョン |
エリア内 | アベイラビリティゾーン | ゾーン |
ネットワーキング
- プライベートのネットワークは「ネットワーキング」から設定可能
AWS | GCP | |
---|---|---|
プライベートネットワーク | VPC | ネットワーク |
サブネット | サブネット | サブネットワーク |
ファイヤーウォール | セキュリティグループ | ファイアウォールルール |
ルーティング | ルートテーブル | ルート |
- だいたい対応するものが存在する
- ただし、すべて考え方が異なるので、頭の切り替えが必要
ネットワーク
- VPCとほぼ同じ
- 使いたいCIDRを指定し、設定する
サブネットワーク
- 複数のゾーンを跨いで構築することが可能
- ちなみに、リージョン跨ぎの通信はGCP内の専用線を通って通信される(インターネットを経由しない)
- 後述するが、FWやルートはサブネットワーク単位には紐付かない
- AWSでよくやる、「Public Subnet」「Private Subnet」構成はそもそもしない
- というか、サブネットワーク使わなくていい(と個人的には思っている)
- 1ネットワーク1サブネットワークでいい(と個人的には思っている)
- ドキュメントにはレガシーモードって書かれてるけど
- 昔は存在しなかったので、古いネットワークではそもそも利用できない
- IGWはサブネット単位で自動で作られる
- AWSはわざわざ作成&ルーティングの設定が必要
ファイヤーウォールルール
- AWSと異なり、基本的にはインスタンス単位で記述する
- ただし、タグと呼ばれるグループにアタッチするので、該当インスタンスが複数にすることも可能
- ポート、ソース、ターゲットの3つをセットで記述する
- ポート:「tcp:80;」「tcp:22;」「udp:123;」のような感じ
- ソース:どこからのアクセスか、IPアドレス(CIDR),タグなどが指定可能
- ターゲット:どれに対してのルールか、基本的にはタグを指定する
- (AWSと異なり)インスタンスからリンクが貼られてないので、どれが許可されてるかを追うのが大変かも
- デフォルトのネットワークを使用すると、デフォルトでtcp:22;が全開けなので注意
ルート
- ネットワークが作られると以下2つは自動で作成される
- 同一ネットワーク内の通信
- インターネットゲートウェイへの通信
- 優先度とタグを利用することが可能
- 優先度:どれくらい優先してネットワーク通信を許可するか
- デフォルトでは1000が使われるので、だいたい1000でいいと思われる
- 優先度を変える場面が現状不明
- タグ:どのインスタンスにそのルートを適用するか
- 自動で作られる2つはネットワーク内すべてのインスタンスに適用される
- 優先度:どれくらい優先してネットワーク通信を許可するか
その他(追記済み)
- AWSとGCPの通信はVPNを利用する
- ネットワーク間の通信は2パターン
- 同一プロジェクト内の別ネットワーク
- Cloud VPNを設定
- 別プロジェクトのネットワーク
- クロスプロジェクトネットワーク(XPN)を使う
- G Suiteと連携してないと使えない?(個人アカウントで出てこない・・・)
- G SuiteのAdminアカウントからしか設定できない
- 誰かを任命して権限委譲することは可能
- 個人では複数プロジェクトの連携はできなさそう
- まぁ使わないか
- 同一プロジェクト内の別ネットワーク