[レポート] AWS Well-Architected best practices for DevOps on AWS #DOP207 #reinvent

2023.01.04

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、つくぼし(tsukuboshi0755)です!

re:Invent2022のセッション AWS Well-Architected best practices for DevOps on AWS を視聴したので、レポートしたいと思います。

セッションの概要

In this session, learn about all of the components required to align your DevOps practices to the pillars of the AWS Well-Architected Framework. Review organization adoption, development lifecycle, quality assurance, automated governance, and observability.


このセッションでは、DevOps プラクティスを AWS Well-Architected フレームワークの柱に合わせるために必要なすべてのコンポーネントについて学びます。組織の採用、開発ライフサイクル、品質保証、自動化されたガバナンス、可観測性を確認します。

スピーカー

  • Elamaran Shanmugam, Sr. Containers Specialist SA, AMAZON WEB SERVICES INC
  • Deval Parikh, Sr. Solutions Architect, Amazon Web Services

セッション内容

  • 前提として
    • 現時点では、DevOpsは哲学運動のようなものに過ぎず、記述的または規範的なプラクティスを集めた正確なコレクション集を指しているわけではない。

  • DevOpsパイプラインのサンプル

  • AWS Well-Architected Frameworkの柱
    • 運用上の優秀性
    • セキュリティ
    • 信頼性
    • パフォーマンス効率
    • コスト最適化
    • 持続可能性

  • 様々なエンドツーエンドのソリューションにより、以下の5つのフェーズにおいて、開発組織の迅速化の支援を可能とする
    • 開発環境
    • ソース/アーティファクト
    • ビルドとテスト
    • デプロイ
    • モニタリング

  • AWSでは、セキュリティが最優先事項
    • 制限付きアクセス及び最小権限
    • クラウドへの安全に保管
    • 問題に対するスキャン
    • プライベートVPCでの実行
    • AWS上での全てのパッチ適用

  • AWSと緊密に結合できるAWS以外の主なツール
    • GitHub
    • Bitbucket
    • GitLab
    • Terraform
    • JetBrains

  • CodeDeployとECSを用いたBlue/Greenデプロイメントの例

  • Canaryデプロイメントの例
    • 最小のトラフィックを新しい環境に公開可能
    • 完全に切り替わるまで、トラフィックの割合を段階的に徐々に増やしていく
    • 加重DNS、加重ELBターゲットグループの実装

  • DevSecOpsの観点におけるセキュリティチェックポイント
    • コードリポジトリ:シークレットスキャン
    • ビルド及びコンテナ化:ソフトウェア構成分析、ソフトウェア構成表/静的アプリケーションセキュリティテスト/IaCコードのlint
    • テスト用の検証及びデプロイ:ECRスキャン/画像署名/動的アプリケーションセキュリティテスト
    • 本番環境へのデプロイ:画像署名/動的アプリケーションセキュリティテスト

  • 継続的なコード改善
    • Amazon CodeGuru Reviewer:実用的な推奨事項を備えたビルトイン・コードレビュー
    • Amazon CodeGuru Profiler:コストのかかるコードのプリプロダクション行を検出して最適化/本番環境でのパフォーマンスとコストの改善を簡単に特定

  • Amazon DevOps Guruの始め方
    • アカウント全体または特定のCloudFormationスタックを選択
    • DevOps Guruは、指標/ログの分析を開始してインサイトを生成
    • AWS Systems Managerの機能であるOpsCenterと統合

  • 継続的アセスメント
    • AWS FISは、さまざまなAWSサービスにわたって制御された障害実験をセットアップして実行するプロセスを簡素化し、チームがアプリケーションの動作に自信を持てるようにします

  • AWS GitOps スタック
    • Gitサービス:AWS CodeCommit, GitLab, GitHub, BitBucket
    • IaCサービス:AWS CloudFormation, AWS CDK, AWS SAM, Terraform, Pulumi
    • CI/CDサービス:AWS CodeBuild, AWS COdePipeline, AWS COdeDeploy, CircleCI, GitLab, BitBucket

  • AWS CDKとは
    • TypeScript, Python, Java, .Netでクラウドインフラストラクチャを定義するためのオープンソースフレームワーク
    • CloudFormationでリソースをプロビジョニング
    • CloudFormationのリソースタイプを全てサポート
    • AWS のベストプラクティスがデフォルトで組み込まれている高レベルのリソースタイプを有するライブラリを提供

  • AWSのオブザーバビリティツール
    • Container Insights:完全に管理されたコンテナ監視プラットフォーム
    • AWS X-Ray Insights:異常検出を使用して問題を自動的に特定し、通知
    • AWS Lambda Insights:Lambda のパフォーマンスとヘルスメトリクスデータへのより深いインサイト
    • Contributor Insights:トップコントリビューターのCloudWatchログから時系列データを作成
    • Metrics Explorer:リソースタグに基づく動的ダッシュボード
    • ServiceLens:ログ、メトリクス、トレースを簡単に関連付けて、サービスのボトルネックをすばやく特定
    • Synthetics:Webサイトとエンドポイントでリアルユーザーモニタリングを実行

  • AWSにおけるオブザーバビリティ選択の例

  • 継続的オブザーバビリティ
    • Amazon DevOps Guruは、開発者とオペレーターが問題を自動的に検出し、アプリケーションの可用性を向上させ、コストのかかるダウンタイムを削減する事を容易にできる

  • ベストプラクティスに基づいた最終的なアーキテクチャの例

最後に

今回はAWS及びAWSと密接に関連しているDevOps系サービスに関するセッションレポートについて、記載させて頂きました。

AWSは非常に多種多様なDevOps系サービスを揃えており、ベストプラクティスに基づいて使用する事ができます。

またAWSと連携可能なサードパーティのDevOps系サービスも豊富です。

本セッションでは様々なAWS及びサードバーティのDevOps系サービスが包括的に紹介されているので、もしDevOpsを実践する中で取り入れていないAWSサービスがあれば、ぜひ使用を検討してみてはいかがでしょうか。

以上、つくぼし(tsukuboshi0755)でした!