[2020年9月] Cloud Architect(Googleプロ認定資格)合格への道:第8回 正しいコンテナ運用、開発と負荷テスト

どうも、末岐碧衣です。

7月に Data Engineer 取ったばかりですが、9月末に今度は Cloud Architect に挑戦することになりました。

ということで、あと2週間切ってますが(!)、前回合格できた Professional Data Engineer の時と同じ手順で、お金をかけず、短期間で勝負を決めたいと思います。

私は技術畑をずっと歩いてきたエンジニアではないので、文系だったりあんまりI Tに自信ないけど、Google Cloud Certified プロ認定試験に挑戦して、資格取りたい!という方には参考にしていただける内容になると思います。

 

なお、このGoogleの教育プログラムなどに一切お金を使わず、2週間で集中学習する手順は、模試の受験が必須です。まだの方は、まずは模試を受験してみてください。その辺の手順は第1回の記事で詳しく記載しています。

 

今回のメインテーマ:開発とテスト

模試でいうと、14〜16問目までです。

模試:14問目

→これはDataEngineerの時の勉強と重複するのでスキップ

模試:15問目

模試:16問目

 

暗記ポイント① 負荷テスト

Locust

Pythonベースのオープンソース負荷テストツール。数百万の同時ユーザーをシミュレートするために使用できます。

ちなみに、Locustは日本語訳すると「イナゴ」。ネーミングセンスが光りますね。

GKEアプリで負荷テストしたい時の具体的な使い方はこちら↓

https://github.com/GoogleCloudPlatform/distributed-load-testing-using-kubernetes

 

GCPとLocustを使ったIoTアプリケーションの負荷テストの例

ドライバー(Locust)とターゲーット(サンプルIoTアプリケーション)を別プロジェクトで作成し、テストします。

LocustUIでテスト結果の統計やチャート、障害の詳細を確認できます。

公式はこちら。

Load-testing an IoT application using GCP and Locust Google Cloud Community tutorials submitted from the community do not represent official Google Cloud product documentation.
Load-testing an IoT application using GCP and Locust cloud.google.com
Load-testing an IoT application using GCP and Locust

 

暗記ポイント② Container Registryを使ったGKEコンテナ運用

複数リージョンにわたる継続的デリバリー(Continuous delivery、CD)パイプラインを作る

Container Registry、Google Kubernetes Engine、Cloud Load Balancingを使う。

Container Registryは、Docker コンテナ イメージを保存、管理、保護を行う。CI / CD 統合がすでに組み込まれており、コードをコミットすると自動的にイメージをビルド、デプロイしてくれる。また、脆弱性スキャンもやってくれる。

Cloud Load Balancingは、単一リージョン内のインスタンスにトラフィック を分散する。

ただし、DNS レコードで使用できる単一のグローバル IP アドレスを提供するので、 URL マップを使用して、リクエストを公開したいサービスのみにルーティ ングすることが可能。

 

コンテナがステートレスで不変であるようにする

コンテナは従来のサーバーみたいに扱ってはいけない。例えば、コンテナ内でアプリを更新したり、パッチを適用してはいけない。

アプリケーション コードを更新したり、パッチを適用したりする必要がある場合は、新しいイメージを作成して再デプロイします。

ステートレス性:全ての「状態」がコンテナの外部に格納されること。ファイルはCloud Storage、セッション情報はKey-Value ストア(Redis や Memcached)

不変性:コンテナがその存続期間を通して変更されないこと。コンテナの構成(リスニング ポート、ランタイム オプションなど)を外部化する。

公式はこちら↓

Best practices for operating containers  |  Architectures  |  Google CloudThis article describes a set of best practices for making containers easier to operate. These practices cover a wide range of topics, from security to monitoring and logging. Their aim is to make applications easier to run in Google Kubernetes Engine and in containers in general. Many of the practices discussed here were inspired by the twelve-factor methodology, which is a great resource for building cloud-native applications.
Best practices for operating containers  |  Architectures  |  Google Cloud cloud.google.com
Best practices for operating containers  |  Architectures  |  Google Cloud

コンテナ化アプリケーションのモニタリング

Prometheus(プロメテウス、オープンソースの監視ツール)を使ってホワイトボックスモニタリングを行う。

 

意味不明だったキーワード

デプロイメントアーティファクト

artifact(アーティファクト):人工物

つまり、デプロイするアプリ一式のこと。

 

 

次回に続く!

それでは!

末岐 碧衣
  • 末岐 碧衣
  • フリーランス のシステムエンジニア。独立後、一度も営業せずに月収 96 万円を達成。1986年大阪生まれ。早稲田大学理工学部卒。システムエンジニア歴 12年。
    2009年、ITコンサルティング企業に入社。3年目でコミュ障が爆発し人間関係が崩壊。うつにより休職するも、復帰後はコミュ障の自覚を持ち、「チームプレイ」を徹底的に避け、会社組織内においても「一人でできる仕事」に専念。社内外から評価を得た。
    無理に「チームプレイ」するよりも「一人でできる仕事」に専念した方が自分も周囲も幸せにできることを確信し、2015年フリーランスとして独立。