Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

優れたアーキテクチャを生むAWSベストプラクティス。運用者が守るべき5つの柱

「Developers.IO 2018」セッション「1000件以上の活用を見てわかった絶対に失敗しないAWSベストプラクティス」レポート

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2018/11/07 14:00

 AWS Well-Architected Frameworkとは、AWSにおけるシステム設計・運用の大局的な考え方やベストプラクティスが紹介されているフレームワークだ。AWSのソリューションアーキテクトや利用者が、数多くの経験から導き出したノウハウの集大成である。本セッションでは、AWS Well-Architected Frameworkの5つの柱である「セキュリティ」「信頼性」「パフォーマンス」「コスト最適化」「運用性」に沿った形で、クラスメソッドの菊池修治氏がAWSのベストプラクティスを紹介した。

目次
クラスメソッド株式会社 AWSシニアソリューションアーキテクト 菊池修治氏
クラスメソッド株式会社 AWSシニアソリューションアーキテクト 菊池修治氏

【セキュリティ】~既存のツールを有効に活用する~

 まずは、1つ目の柱であるセキュリティについて。とりわけ、「AWSアカウントをどう保護するか」というテーマにフォーカスして、菊池氏は話し始めた。

 「AWSアカウントの安全性を確保するために、適切な管理が必要になるものは数多くあります。例えば、ルートアカウントやAWSのユーザー、ロールなどの権限まわり。アクセスキーやパスワードといった認証情報。『Amazon S3』へのアクセス許可などです」

 AWSセキュリティ関連のトラブルで特に多いのが、アクセスキーの漏洩だ。アクセスキーをソースコード内にハードコーディングしたままGitHubにアップしてしまい、その情報を不正利用されてしまう事例は枚挙にいとまがない。あるいはAmazon S3上のファイルがインターネットに上に公開されてしまい、機密データを第三者に閲覧される事例もよく起きている。

 これらを防ぐには、クラスメソッド提供のセキュリティ監査サービスである「インサイトウォッチ」が効果的だと菊池氏は語る。

 「インサイトウォッチは、AWSのセキュリティ設定が適切に行われているかをチェックしてくれるサービスです。チェック項目は、Center for Internet Security (CIS) ベンチマークという標準に従っているため、厳格にセキュリティを検証できます。このサービスは無償で利用可能です。

 他にも、AWSで提供されている『Amazon GuardDuty』というサービスも、セキュリティを高めるのに役立ちます。さまざまなイベントログを分析し、攻撃の前兆となるような挙動を検知してくれるんです」

Amazon GuardDuty
Amazon GuardDuty

【信頼性】~すべてのシステムコンポーネントは故障しうると仮定して設計する~

 続いて、2つ目の柱である信頼性について。AWS Well-Architected Frameworkでは、「すべてのシステムコンポーネントは故障しうると仮定して設計すべき」であると提言されている。では、障害を未然に防ぎ、かつ障害が発生しても被害を最小限に抑えるには何をすべきなのだろうか。

 「まず有効なのは、複数のアベイラビリティゾーンを利用することです。アベイラビリティゾーンとは、特定のリージョンのなかにある複数の独立したロケーションのこと。これらをまたいでシステムを構成することで、信頼性が高くなります。さらにはサービスの稼働状況のモニタリングも重要です。単純なサーバーの死活だけではなく、サービスそのものが正常に動いているかをモニタリングしてください」

 さらに、ディザスタリカバリ(システム障害が発生した際に、システムを迅速に復旧するための仕組み)を用意することも、信頼性向上のためには必要だ。構成パターンとしては、大きく4つの方法がある。

 1つ目は、「バックアップ&リストア」という方法だ。バックアップファイルのみを別のリージョンに退避しておく考え方である。2つ目は、「パイロットライト」という方法。これは、停止した状態のサーバーを別のリージョンに用意しておき、障害発生時に立ち上げるというものである。

 非常時の際に、サービスを迅速に別のリージョンに展開したい場合には、「ウォームスタンバイ」という方法が効果的だ。これは、平常時は最小限のリソースでサーバーを起動しておき、非常時にサーバーをスケールさせるというものである。また、より信頼性を高めるには、常時複数のリージョンを用いてサービスを提供する「マルチサイト」という方法が用いられる。

 ただし、耐障害性を高めれば高めれば高めるほど、比例してコストも増大する。システムの費用対効果を考えながらアーキテクチャを選定することが重要だ。

ディザスタリカバリはトレードオフを理解した上での選択が重要
ディザスタリカバリはトレードオフを理解した上での選択が重要

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 中薗 昴(ナカゾノ スバル)

     大学卒業後、システムエンジニアとして8年ほど勤務。その後、編集者・ライターへとへキャリアチェンジ。  エンジニアとして培ったテクノロジーへの理解やリサーチスキル、ビジネススキルなどを強みに、テクノロジー・ビジネス系メディアの編集・執筆を得意とする。

バックナンバー

連載:イベントレポート

もっと読む

All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5