CCoE + 1.0　変化への適応と成長

# はじめに
本記事は[CCoEクリスマス！クラウド技術を活用して組織をカイゼンした事例を投稿しよう！ by KINTOテクノロジーズ Advent Calendar 2023](https://qiita.com/advent-calendar/2023/kinto-technlogies)に基づいて、クラウド技術を活用して組織をカイゼンした事例について記載しています。

CCoEの組織を立ち上げ後、変化への適応と成長をテーマに2023年取り組んだ活動の一部について紹介します。対象とするパブリッククラウドはAWSと、Google Cloudです。

CCoEについて知らない方は、以前書いた[「Cloud Center of Excellenceとは何か」](https://qiita.com/Brutus/items/4baffd8d95b7abf294f1)をご参照ください。

## CCoEの活動
組織としてCCoEとしての活動は2年目を向かえて、基本的にAWSとGoogle Cloudを管理しています。

[「CCoEを一から構築する　AWSのセキュリティ・ガバナンス・コスト最適化を実現するためのクラウドジャーニー」](https://qiita.com/Brutus/items/4d83ab3cc77c099ca65b)は去年に書いたアドベントカレンダーの記事です。

前提として、筆者の組織ではバランスモデルを採用しています。バランスモデルについては上記記事をご参照くだい。また、CCoEの方針として、セキュリティ・ガバナンス・コスト最適化の軸で課題定義を行い、施策を打っていくアプローチは変わりません。

上記記事を踏まえて何もないところから始めるのも難しかったですが、2年目の組織として更に成熟させるフェーズも難しさを感じました。CCoE立ち上げ時はAWSだけがスコープでしたが、Google Cloudもスコープに含めたり、人の入れ替わりなど様々な変化がありました。また、2022年から続く円安ドル高傾向が当たり前の世の中も感覚が狂ったままです。

![money_weak_yen.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221759/29e627c8-70c7-fee6-66f1-c16c474d9b0c.png)

## AWS
### セキュリティ
#### AWS Security Hubのスコア向上
セキュリティなど定量化しにくい抽象的な課題に対して**アウトカム**を出すためには、戦略が必要です。

AWS Security Hub（以下、Security Hub）導入後、検出されていたCRITICALの項目を解消して、結果的にスコア向上という**カイゼン**につながりました。また、HIGH対応などスコープを広げることで、手綱は緩めないようにしています。

https://aws.amazon.com/jp/security-hub/

Security Hubは、指標としてスコアを使用した定量的な評価が可能です。Security Hubを導入したものの、現状を可視化できてもカイゼンできなければ、コストのみかかっているだけです。また、検出した内容を通知することは目的ではありません。

Security Hubを例にアウトカムを出すための考え方について以下に記載します。

- スコープを明確にする
    - まずはCRITICALから是正していき次にHIGHの項目に取りかかるなど段階的に進めていくのが望ましい
    - HIGHについては、EC2.9[^1]やS3.8[^2]など大量に検出されやすく潰しにくい項目もあるため、線引きするなどの整理も重要
- 可視化した情報の共有
    - 検出された項目について、メンバーアカウントの管理者に情報を共有して認識してもらう
    - 期限を決めて対応し、対応が難しい場合は理由を深ぼる

Security Hubのスコアにしろ数字は結果に過ぎません。数値を達成するための行動目標を立てることで、**行動を実行することを目標にすることが重要**です。例えば、目標設定のやり方として、単にスコアを何%向上するといったような短絡的な目標設定よりは、毎週Security Hubで検出されている項目をチェックするなど、行動目標を設定するのが本質的なやり方です。

::: note
Security Hubのポイントについて以下に記載します。要約すると、Security Hubのスコアはあくまで断片的な数字として捉えることで、数字に振り回されない運用も大事だと思います。

- ある特定のコントロールの検出結果をすべて抑制済みにした場合、そのコントロールのコンプライアンスステータスは[No data] (データなし) という扱いになる
- 有効になっているコントロールのうち[No data] (データなし) のコントロールが除外されると、分母・分子が変わるため、スコアに影響する
- 是正した項目はスコアに反映されるまでは時間がかかるため、即時に反映はされない
- スコアについてCRITICALやHIGHなど重み付けによるスコアリングはされない
- [Document history for the AWS Security Hub User Guide](https://docs.aws.amazon.com/securityhub/latest/userguide/doc-history.html)の通りに不定期でコントロールが追加されるため、実質的な変化を捉えたい場合は「有効になっている標準で新しいコントロールを自動的に有効にする」をオフに変更するか、または定期的な観測が必要
:::

[^1]: EC2 instances should not have a public IPv4 address
[^2]: S3 Block Public Access setting should be enabled at the bucket-level

### ガバナンス
#### クラウド利用のガイドライン策定
バランスモデルを採用している組織では、ガイドラインなどドキュメントの整備が重要です。

特にリモートワークが中心の企業では、ドキュメントの質が高いほど効果を発揮すると思います。ガイドラインの考え方について以下に記載します。

まずはルールなど規定を策定してルールを守らせることと、ガイドラインを展開して指針や方向性を示唆することは、別であると理解しましょう。

組織によっては、ガバナンス重視の場合はルールと仕組みによってガバナンスを強制することもできると思います。しかし、バランスモデルを採用している組織では、強制的なルールを適用することは難しいため、ガイドラインを展開して推奨すべき行動を呼びかける運用になります。

ガイドラインを整備することで直接的なカイゼン効果は得にくいですが、間接的なカイゼン効果として、組織貢献に繋がると考えています。

::: note
ガイドラインは方向性の指針です。クラウドを利用する者に対して行動指針を示すことで「未来の方向性や見通し」を明示します。また、利用可能な範囲を定義することで「**どう行動すべきか**」を考えさせるかが重要です。従って強制力は持たないため、「ルールの準拠」を理想とするが、様々な結果が生じる可能性を考慮しましょう。
:::

### コスト最適化
#### 課題を見極める
為替相場は、2023年も円安ドル高傾向が続き、クラウドサービスをはじめ海外のサービス利用についてコストの上昇が課題に感じる年だったと思います。

このような為替の影響などの外的要因については、コントロールが不可能であるため、対応が悩ましいものです。しかし、自身でコントロール可能な課題については、対応しない理由はないのではないでしょうか。

普段からAWSを利用している開発者の方は、既にご存知の方が多いと思いますが、以下公式ブログの通りに2024年2月1日からパブリックIPv4アドレスの利用に対する新しい料金体系が適用されます。

- [新着情報 – パブリック IPv4 アドレスの利用に対する新しい料金体系を発表 / Amazon VPC IP Address Manager が Public IP Insights の提供を開始](https://aws.amazon.com/jp/blogs/news/new-aws-public-ipv4-address-charge-public-ip-insights/)

従って許容するという選択肢を除けば、このうような変化に対しては対応することが必要になってきます。

#### EBSのボリュームタイプを見直してコスト最適化を実現する
以下は今年に取り組んだ施策の一環です。

- [AWSのコスト削減　EBSのボリュームタイプを見直してコスト最適化を実現する](https://qiita.com/Brutus/items/68e3c1906cadc1e303e8)

詳細については上記記事をご覧いただければと思いますが、EBSのボリュームタイプを見直すことで、コスト最適化を実現しました。

対応前は全体でgp3の使用率はgp2より大きく下回っていましたが、本記事執筆時点でほぼ横ばいの推移までgp3の使用率が上昇しました。性能などのパフォーマンスにも寄与するため、理由がない限りやらないという選択肢はないと思っています。

## Google Cloud
### セキュリティ
#### SCCのレポートを活用する
Google Cloudでは、[Security Command Center](https://cloud.google.com/security-command-center?hl=ja)（以下、SCC）というセキュリティの管理機能があります。

AWSのSecurity HubのようにGoogle Cloudで管理しているプロジェクト毎に、レポートを出力することで組織単位でセキュリティの状況を数値化できます。

SCCについても情報共有を行い対応してもらうことで、違反が検出されなかったコントロールなどの数字からもセキュリティの状況について**カイゼン**できました。

SCCのコンプライアンスからチェック可能なレポートは、本記事執筆時点で以下のような種類があります。

- CIS Google Cloud Platform Foundation 1.0
- CIS Google Cloud Platform Foundation 1.1
- CIS Google Cloud Platform Foundation 1.2
- CIS Google Cloud Platform Foundation 1.3
- CIS Google Cloud Platform Foundation 2.0
- CIS Kubernetes Benchmark 1.5.1
- PCI DSS 3.2.1
- ISO 27001
- OWASP 2017
- OWASP 2021

::: note
Google Cloudで提供されているCISのバージョンは複数あるため、SCCで管理している側の組織とプロジェクト側で目線を合わせることが重要です。
:::

### ガバナンス
#### Google Cloudのリソース棚卸し
CCoEとしてガバナンス強化を図るためには、はじめにリソースを把握しておくことで、整理がしやすいと思います。

AWSと比べると、アカウント毎の整理ではないため、プロジェクトの概念を理解した上でリソースの棚卸しを行いましょう。

以下はGoogle Cloudのリソース棚卸しを行う方法について記載しています。

- [Google Cloudのリソースを棚卸しするための方法](https://qiita.com/Brutus/items/7a5178eb340c9fefd9d9)

畑を耕す際に、まずは土を掘り起こす作業と同じですね。

### コスト最適化
#### 工夫してコストを削減する
統制の観点で創意工夫によって、コストを削減した事例を紹介します。

以下も今年に取り組んだ施策の一環です。

- [Cloud RunとCloud Storage FUSE　コンテナからFUSEを介してCloud Storage（GCS）のオブジェクトを圧縮する方法](https://qiita.com/Brutus/items/80afc7f9809dfe0d9d34)

圧縮されせずに保存されている大容量のオブジェクトに対して、Cloud Run ジョブでバッチ処理を行い圧縮することで、Cloud Storageのコスト削減を実現しました。

#### 仕様を理解してコストを抑制する
対数的なログ増加などによって、コストが上昇する場合は、クラウドサービスの仕様を理解しておくことが重要です。

以下は監査ログに関するコスト最適化について記載しています。

- [Cloud Loggingのベストプラクティス　監査ログに関するコスト最適化・分析](https://qiita.com/Brutus/items/5f8ada6d44436b1e7a47)

気がつくと実は使っていない機能によって、無駄なコストが発生していたのはよくある話だと思います。**ジブンゴト化**ができるのがプロの責任です。

# おわりに
タイトルの+1.0の意味は、CCoE立ち上げ後「無から正へ」という意味合いで付けました。

CCoE立ち上げ時は、小さな成功体験を積み重ねることができますが、2年目以降成熟してくるにあたり様々な課題は見えているものの、コントロールできない部分が多く別の壁にぶつかります。

CCoEという組織で成果を出し続けるためには、周りの協力が必要不可欠です。特にエグゼクティブなどに影響を与えたり、時にはトップダウンの圧力をかけることができるキーパーソンの存在も重要だと思います。

横断組織という仕事に対して正解はないと思いますが、同じ様にCCoEの活動を行う方の参考になれば幸いです。