[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でテスト結果の統計やチャート、障害の詳細を確認できます。
公式はこちら。


暗記ポイント② 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)
不変性:コンテナがその存続期間を通して変更されないこと。コンテナの構成(リスニング ポート、ランタイム オプションなど)を外部化する。
公式はこちら↓


コンテナ化アプリケーションのモニタリング
Prometheus(プロメテウス、オープンソースの監視ツール)を使ってホワイトボックスモニタリングを行う。
意味不明だったキーワード
デプロイメントアーティファクト
artifact(アーティファクト):人工物
つまり、デプロイするアプリ一式のこと。
次回に続く!
それでは!