Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
第4回 雲勉LT【オンライン:初心者向け】(GCP)限定公開のGoogleアクセスとCloud...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Y.Sumikura
November 21, 2022
Technology
670
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
第4回 雲勉LT【オンライン:初心者向け】(GCP)限定公開のGoogleアクセスとCloud NATの実装
Y.Sumikura
November 21, 2022
More Decks by Y.Sumikura
See All by Y.Sumikura
第103回 雲勉【オンライン】インフラエンジニアにおける ChatGPT の便利な使い方と注意点
sumikurayurie1125
1
340
第101回 雲勉【オンライン】VPC から始めるネットワーク入門
sumikurayurie1125
0
200
第99回 雲勉【オンライン:初心者向け】Infrastructure as Code (IaC) 入門 〜TerraformとAnsibleを使ってみよう〜
sumikurayurie1125
0
280
第96回 雲勉【オンライン:初心者向け】インフラエンジニアのKubernetes入門
sumikurayurie1125
0
280
第8回 雲勉LT【オンライン:中級者向け】AthenaでS3上のデータとDynamoDBのデータを結合する
sumikurayurie1125
0
400
第93回 雲勉【オンライン:初心者向け】CI/CDって結局何なの?インフラエンジニアがCode3兄弟を学ぶ
sumikurayurie1125
13
5.4k
第7回 雲勉LT【オンライン:初心者向け】サーバレスコンテナサービス Lambda, Fargate, App Runnerの特徴、違いを解説
sumikurayurie1125
3
710
第6回 雲勉LT【オンライン:初心者向け】2022年 気になったアップデート情報:「RDSコンソールの、EC2ワンクリック接続オプション」について
sumikurayurie1125
0
200
第5回 雲勉LT【オンライン:初心者向け】GCのサービスだけでCI_CDを構築してみよう
sumikurayurie1125
0
87
Other Decks in Technology
See All in Technology
AIは推し活である。
kurazuuuuuu
2
1k
【データ横丁主催】AI Agentがコンテキストを使って仕事をした後、何が残るのか― 組織の経験を次の判断に引き継ぐ「Agent Memory」
shisyu_gaku
2
200
GoのInterface内部構造から学ぶ!最高パフォーマンスを出すコード設計
yappli_developers
1
300
Azure Copilot Resiliency Agentをいろいろ試してみる
tomokusaba
0
130
Apache Iceberg が拓く AI 時代のオープンレイクハウス
tomtanaka
0
170
3人で1000GPU超を統合運用する?マルチクラウド&オンプレを跨ぐ、構築と運用のリアル!
kazukun0716
2
700
TiDBファミリーにDWHが新登場!! TiDB最新情報 / TiDB update 202609
yoshiakiyamasaki
0
150
メルカリにおけるAI時代の高速プロトタイピング基盤「Arca」
ryotarai
17
13k
2026-09-08 そのJavaモダナイゼーション、AIに丸投げで大丈夫?IBM Bobで変わる品質と効率
yutanonaka
1
210
C#未経験の僕がAIに読めるコードを書かせるまで
maguroalternative
0
340
VS Code × GitHub Copilot での Fabric 開発
ryomaru0825
1
130
生成AIを使って「人が」考える技術 ― AI時代の人機共想と実践ノウハウ|UNITT AC2026
ishiirikie
0
370
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Building Adaptive Systems
keathley
44
3.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
Designing Experiences People Love
moore
143
24k
Ruling the World: When Life Gets Gamed
codingconduct
0
370
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
750
Paper Plane (Part 1)
katiecoart
PRO
2
11k
Crafting Experiences
bethany
1
360
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
590
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Tell your own story through comics
letsgokoyo
1
1.1k
[SF Ruby Conf 2025] Rails X
palkan
3
1.4k
Transcript
第4回 雲勉LT【オンライン︓初⼼者向け】 (GCP)限定公開の Google アクセスと Cloud NAT の実装
⾃⼰紹介 2 • 野崎 ⾼弘(のざき たかひろ) • アイレット株式会社 クラウドインテグレーション事業部 プロジェクト企画推進セクション
インフラ技術 • インフラ構築・保守やSOCセキュリティアナリストをやってました • 現在は技術検証やドキュメント作業が主 • 趣味︓資格取得、⽝の散歩、ドラクエ、巨⼈ファン、ドラマ • 好きな⾷べ物︓カレー、ハンバーグ、チーズ、パクチー、⽣クリーム系スイーツ • GCPは現在3冠、AWSは8冠 3
外部IPアドレスを付与しない⽅がいい理由 3 • 基本的にVMインスタンスに外部IPを付与するのは稀 • 標準VMインスタンスで使⽤されている静的 IP アドレスとエフェメラル IP アドレス(インスタンス起動
時に発⾏される外部IPアドレス)- 0.004 ドル/時間 • とはいえインターネットに出られないと困るケースも多い • 外部からの通信を直接受ける必要はないが、外部への通信が必要となる処理(例えば、メーカーから提供 されるソフトウェアパッチを取得、外部のソースリポジトリからソースコードをクローニング)を、外部 IPアドレスを持たないVMから実施したい 本LTの対象者︓GCPのことはなんとなく知っているが、VPCネットワークをそれほど触ったことがない初⼼ 者 本LTは、初⼼者がGCPネットワークを把握するのにちょうどいい題材
そこで 4 外部 IP アドレスを設定していない VM インスタンスに対して、限定公開の Google アクセスと Cloud
NAT を実装します。その後、Google API およびサービスのパブリック IP アドレスへのアクセスと、その 他のインターネット接続を検証します。 外部 IP アドレスを設定していない VM インスタンスは、外部ネットワークから隔離されています。Cloud NAT を使⽤すると、これらのインスタンスがインターネットにアクセスして、更新、パッチ適⽤などが可 能になります。
限定公開の Google アクセスとは︖ 5 Private Google Access とも⾔い、Google Cloud の
API (ドメイン名が *.googleapis.com)に対して、 外部IP(パブリックIP)を持たないVMやオンプレミスのクライアントから、インターネットを介さず、Google の内部プライベートネットワークを通してアクセスできるようにする仕組み ⇨AWSで⾔うところのVPCエンドポイント (https://qiita.com/suzuyui/items/b69be2a50df9cbedf402 より)
Private Service Connect との違いは︖ 6 • インターネットに接していないノードを Google API へアクセスできるようにする仕組み
• VPC 内に IP アドレスを持つエンドポイ ントを作成し、このエンドポイント経由 で Google API にアクセスする • エンドポイントには任意の IP アドレス を割り当てることができ、通常のプライ ベートIPアドレスも使える • Private Service Connect エンドポイントの作成は若⼲⼿間 • 限定公開の Google アクセスだと、199.36.153.4/30 や 199.36.153.8/30 といったIPアドレスを使う 必要があるため、Cloud Interconnect や Cloud VPN 経由でオンプレミス環境から利⽤する際などに、 ルーティングが複雑化する • 限定公開の Google アクセス機能は無料︕
全体像 7 限定公開の Google アクセスを使⽤して、 Cloud Storageからファイルをダウンロードし、 NAT ゲートウェイを使⽤して、インターネットに接 続してパッケージをダウンロードします。
⼿順の流れ 8 1. Cloud Storage バケットから画像をダウンロードできないことを確認 2. 限定公開の Google アクセスを有効化
3. 再度1.を実⾏し、今度はうまくいくことを確認 4. インターネットへアクセスできないことを確認 5. Cloud NAT を実装 6. 再度4.を実⾏し、今度はうまくいくことを確認 7. Cloud NATログを⾒て、アクセスを確認 8. 今度は外部IPを付与してインターネットへアクセス 9. Cloud NATログを⾒て、今度は該当ログがないことを確認
事前準備 9 • VPCネットワークとそのファイアウォールルールを作成 • 外部 IP アドレスが設定されていない VM インスタンスを⽤意
• サブネットで限定公開の Google アクセスを無効のままにする(デフォルト) • Cloud Storage バケットを作成して、サンプル画像を保存しておく
ファイアウォール ルール忘れないように 10 次のように指定し、残りの設定はデフォルトのまま IAP 接続で使⽤される、特定の IP アドレスセット(35.235.240.0/20)を CIDR 範囲に制限
IAP TCP 転送では、SSH、RDP、その他のトラフィックを VM インスタンスに転送できる暗号化トンネルを 確⽴する プロパティ 値 名前 privatenet-allow-ssh ネットワーク privatenet ターゲット ネットワーク上のすべてのインスタンス ソースフィルタ IPv4 範囲 送信元 IPv4 範囲 35.235.240.0/20 プロトコルとポート 指定したプロトコルとポート(tcp:22)
デモ 11 ここからデモも交えて実際の動きを⾒ながら説明します。
作業の流れ 12 1. 外部 IP アドレスを設定していない VM インスタンス(vm-internal)において、pingを実⾏して外部接続をテスト ping -c
2 www.google.com vm-internal には外部 IP アドレスが付与されていないので、これは動作しないことを確認 2. Cloud Storageの画像が vm-internal にコピーできるかどうか、次のコマンドを実⾏ Gsutil cp gs://Nozaki_bucket/*.png . 限定公開の Google アクセスが無効になっているため、これは動作しないことを確認 (vm-internal がトラフィックを送信できるのは 、VPC ネットワーク内に限られます) 3. 限定公開の Google アクセスを有効にする 限定公開の Google アクセスは、サブネットレベルで設定します。有効にすると、サブネット内でプライベート IP ア ドレスしか持たないインスタンスが、デフォルトルート(0.0.0.0/0)を通じて Google API およびサービスにトラ フィックを送信できるようになります。
作業の流れ 13 4. 再度2.を試して、今度は無事に画像をダウンロードできることを確認 5. apt-get を実⾏して、vm-internal のパッケージインデックスを同期してみる sudo apt-get
update 現在、vm-internal がアクセスできるのは Google API およびサービスだけであるため、これは 動作しな いことを確認 6. Cloud NAT ゲートウェイを構成する Cloud NATを設定するには、Cloud Routerも必要になります。どちらもリージョンごとに作成するリー ジョンリソースで、対象とするサブネットやIPアドレス範囲を細かく指定することが可能です。 この際、ロギングを有効にするため、[⾼度な構成] → [Stackdriver ロギング] で [変換とエラー] を選択
作業の流れ 14 7. 再度5.を試して、今度は無事にインターネットに接続してアップデートできることを確認 vm-internal で NAT ゲートウェイが使⽤されるため、これは正常に動作するはずです。 8. NATログの確認
nat-config をクリックして [ログ] タブをクリック。次に、Cloud Logging へのリンクをクリックしま す。[オペレーションロギング] の新しいタブが開きます。 [ログエクスプローラ] をクリック。内部 VM への接続後に⽣成された 2 つの新しいログが表⽰されます。 (dest_ip にある 199.232.98.132 は、debian.map.fastly.net) Cloud NAT のログは次のシーケンスに対して⽣成されます。 • NAT を使⽤するネットワーク接続が作成 • NAT に使⽤可能なポートがないことが原因でパケットが破棄
作業の流れ 15 9. 外部 IP アドレスを設定して再度試す 今度は外部 IP アドレスを設定していない vm-internal
に、外部IPエフェメラルアドレスを設定します。 再度5.を試すと、当然外部IPアドレスをそのまま使⽤して、無事にインターネットに接続してアップデート できることを確認 10. 再びNATログを確認 再度8.を実施してCloud NAT ログを⾒に⾏き、該当ログがないことを確認します。Cloud NATは、選択し たGoogle APIとサービスの外部IPアドレスに送信されたトラフィックに対してNATを実⾏しないためです。
確認 16 外部 IP アドレスが設定されていないインスタンス vm-internal を作成し、限定公開の Google アクセスの 有効化と
NAT ゲートウェイの構成を⾏って、vm-internal が Google API およびサービス、ならびにその他 のパブリック IP アドレスに接続できることを確認できました。
おまけ(とある Professional Cloud Network Engineer 試験の練習問題1) 17 問題1 Cloud Storage
に保存される結果を⽣成するために、Compute Engine で実⾏されているアプリケーション があります。どのアプリケーション インスタンスにも外部 IP アドレスがない場合に、これを達成するため に使⽤できる 2 つの⽅法はどれですか? ア. すべてのサブネットでプライベート Google アクセスを有効にする。 イ. VPC でプライベート サービス アクセスを有効にする。 ウ. VPC でプライベート Google アクセスを有効にする。 エ. Cloud NAT を作成し、NAT ゲートウェイ経由でアプリケーショントラフィックをルーティングする。 皆さんならもう答え、お分かりですね︖
おまけ(とある Professional Cloud Network Engineer 試験の練習問題)2 18 問題2 インスタンスからインターネットへの接続ができたことを⽰すために、Cloud NAT
のログを設定するよう求 められました。 Cloud NAT が Cloud Logging に送信する 2 種類のログは次のうちどれですか︖ ア. NATログ イ. エラーログ ウ. 接続ログ エ. 変換ログ これもNATの設定のところでやりましたね
None