AWSで変わるシステム運用の勘所
目次
AWSでインフラを保守・運用する時に押さえておきたいポイント
近年、AWS(Amazon Web Services)を利用しITシステムを構築することが、様々な場面で行われています。AWSを利用することでの大きなメリットとしては、導入時のQCD(Quality、Cost、Delivery)が大幅に改善されることです。
一方で、導入後の運用・保守にかかるコストや、耐障害性・可用性の向上も大きなメリットとしてあります。加えて、AWSでインフラを運用していくにあたって、必要なポイントを押さえることで、運用・保守のコストを大幅に向上することができます。本記事では、AWSで構築したITシステムについて、運用保守フェーズで押さえておくべきポイントを記載していきます。
フルマネージド型サービスの活用で運用負担を軽減
フルマネージド型のサービスとは、ITシステムを管理するために必要なハードウェア、OSやミドルウェアの設定や運用などの作業をAWS側で管理するサービスで、RDS(Amazon Relational Database Service)やS3(Simple Storage Service)などが挙げられます。フルマネージドサービスは、ハードウェアやOSの運用保守、交換、セキュリティパッチの適用といった、煩雑な保守業務をAWS側が行うため、利用者側の保守作業を大幅に削減することが可能です。
また、容易なスケーリングが可能であるため、ITシステムの利用者が増えた場合や、一時的に急増する、といった場合にも、特別な運用を行う必要がなくなります。このように、フルマネージ型のサービスを利用することで、運用にかかわる作業を大幅に減らすことができます。ITシステムの設計時や、運用開始後のアーキテクチャ見直しの際には、フルマネージド型サービスの導入を検討してみてください。
「Design for Failure」の思想で設計する
ITシステムの運用担当者として苦労するところは、障害が起きてしまえば、24時間365日、電話がかかってきてしまうことです。それは、『障害が発生する=ITシステムの稼働に重大な影響が発生してしまう』という前提があるためです。Design for Faulureとは、障害発生を前提としたシステムを設計するための考え方です。
つまり、障害を回避する設計ではなく、障害が発生してもサービスを継続できるように設計することが重要という考え方になります。『障害が発生する=ITシステムの稼働に重大な影響が発生してしまう』という前提を変える考え方であり、Design for Failureの思想における設計と、復旧の自動化を組み合わせることで、運用に関わるストレスを大幅に下げることが可能になります。
AWS運用やシステム監視を委託できるスタイルズの監視、運用・保守サービスはこちら→
AWSのベストプラクティスに則った運用設計
AWS上のシステムについて、運用をどのように考えるとベストなのか、については、AWSが公開しているWell-Architected-Frameworkという資料に記載があります。具体的には、
- コードを使って運用する
- 注記付きドキュメントを自動生成する
- 頻繁に、小さく、可逆的に変更する
- 運用手順を頻繁に見直す
- 危険の事前予測と排除を行う
- 全ての運用の失敗から学ぶ
の6か条が記載されています。上記の6か条をさらに抽象的にとらえるとすると、「極力自動化を行う」「継続的な改善を行う」「可視化を行う」という考え方になります。AWS上のシステムについては、上記を意識して設計を行うことで、運用コストの削減を最大限にすることができます。
また、運用設計は記載の通り、定期的な見直しが必要です。AWSでは、様々な機能が日々リリースされています。システム設計時点で公開されていなかった機能についても、見直しの時点で利用できるようになっている可能性があります。最低、1年に1回といったペースでもいいので、定期的な見直しを実施してみてください。
運用を自動化して負担を軽減
通常のITシステムの運用現場では、通常時はCPUなどのリソースレポートを作成し担当者に報告するといったことや、障害発生時はアラート内容を担当者に電話で伝え、担当者が手動で復旧作業を行う、といった手作業による運用が行われています。
手作業においては情報連係ミスや判断ミス、作業ミスのリスクが否定できず、運用の質は非常に低いと考えられます。AWSにおける運用は、先述の通り、極力自動化を行うことが推奨されています。たとえば、リソースのレポートはダッシュボード化して誰でも見れるようにしておいたり、AutoScalingなどを行うことで自動復旧の仕組みをつくったり、ということが推奨されます。AWSでは、運用を自動化させるための様々なサービスが用意されていますので、可能な限り活用を行い、運用の自動化を実現していきましょう。
運用管理を実現するAWSのサービスから3つを紹介
AWSでは、システムの運用を効率化するための様々なサービスが公開されています。そのなかでも、代表的なサービスについて、ユースケースや特徴を記載してきます。
サーバ運用を自動化・効率化する「AWS Systems Manager」
まずは、システム運用の代表的なサービスであるAWS Systems Managerについて記載していきます。AWS Systems Managerの大きな特徴として、「運用が統合できる」「多種多様なサービスが存在する」という特徴があります。「運用が統合できる」について、AWS Systems Managerは、AWSのリソースだけでなく、オンプレミスに構築されたサーバーも対象に利用できる機能があります。
現在、様々な企業がAWS上にITシステムを構築しているとはいえ、システムの100%がAWS上に存在している企業は非常に少なく、ンプレミスのITシステムと併存している状態が大多数かと思います。この場合、オンプレミスとAWSで2重の運用になってしまっているケースがあるかと思いますが、Systems Managerは一部の機能をオンプレミスにも適用が可能であり、統合的な運用を実現できます。
「多種多様なサービスが存在する」について、AWS Systems Managerは、運用の状況を可視化するエクスプローラーやOpsCenter、運用作業自体を自動化するパッチマネージャーといった、様々なサービスが存在しています。運用の様々な課題に応じたサービスを利用することができ、運用の効率化を図ることができます。
「AWSリソース」の管理を自動化できるAWS Config
AWS Configとは、AWSリソース(EC2、EBS、VPCなど)の設定を可視化するサービスです。これらリソースについて、AWSリソースが作成、変更、削除されたタイミングでSNS経由で通知を行うことが出来たり、現在の構成情報のスナップショットを自動で取得したりと、システム構成に関わる情報のトラッキングをサポートしてくれます。これにより、運用時に更新が大変なドキュメンテーションや、構成の把握、といった作業を効率化することが可能になります。
AWS運用やシステム監視を委託できるスタイルズの監視、運用・保守サービスはこちら→
イベントから処理を自動実行する「Amazon CloudWatch Events」
Amazon CloudWatch Events(別名:Event Bridge)は、イベントベース、およびスケジュールベースで別のアクションを起こすことができるサービスです。”イベント”とは、AWSにおける何らかの変化や動作を表します。例えば、GuardDutyなどでセキュリティインシデントを検知した、ECRに新しいコンテナイメージがPushされた、といったことを表します。
このように、Amazon CloudWatch Eventsは運用として検知したイベントの内容を担当者に通知したり、Lambda等の実行につなげて自動化を行ったり、といった使い方が可能で、運用の自動化に大きく貢献するサービスです。
自動化は「一度やっておしまい」ではない
AWSでは常に新しいサービスや新機能が公開されているため、過去に実装した自動化の方法が古くなっていたり、よりコスト効率のよいサービスが公開されていたり、といったことがあり得ます。例えば、AWS Systems Managerは2020年12月から、2021年5月までに4つの機能が追加されているため、今後も機能が追加されていく可能性があります。新機能のキャッチアップや運用の見直しは、時には非常に負荷がかかる作業ではありますが、そのような場合はAWSを専門とするベンダーに相談してみるのもいいでしょう。