AWSを実装するにあたって
これからAWSに移行もしくは、AWSを活用しようとしている皆様、
AWSを実装するにあたって、単純移行しようと思っていませんでしょうか?
(単純移行:現在のシステム構成や設定をそのままに移行すること)
AWS上にシステムを構築する際、AWSを使うメリットを最大限に享受するためには、
AWSが提唱している、「Well-Architected フレームワーク」というガイドラインに沿って、
システム構築をする必要があります。
「Well-Architected フレームワーク」は簡単に言えば、
「システムを構築するときにこうすれば上手くいくよ」という指針です。
なお、このガイドラインはAWSのみならず、様々なクラウドサービスでも重要な考え方なので、
理解しておくと何かの時に役に立つかもしれません。
AWS Well-Architected フレームワークの柱
※これはAWSの公式サイトからの引用となります。
名前 | 説明 |
運用上の優秀性 | 開発をサポートし、ワークロードを効率的に実行し、運用に関する洞察を得て、ビジネス価値をもたらすためのサポートプロセスと手順を継続的に改善する能力。 |
セキュリティ | このセキュリティの柱では、データ、システム、資産を保護して、クラウドテクノロジーを活用し、セキュリティを向上させる機能について説明します。 |
信頼性 | 期待されるタイミングで、意図した機能を正確かつ一貫して実行するワークロードの能力。これには、そのライフサイクル全体を通じてワークロードを運用およびテストする機能が含まれます。 |
パフォーマンス効率 | システムの要件を満たすためにコンピューティングリソースを効率的に使用し、要求の変化とテクノロジーの進化に対してもその効率性を維持する能力。 |
コスト最適化 | 最も低い価格でシステムを運用してビジネス価値を実現する能力 |
↓参考:公式サイト
https://wa.aws.amazon.com/wat.definition.wa-def.ja.html
それぞれ詳しく見ていきましょう。
1.運用上の優秀性
開発をサポートし、ワークロードを効率的に実行し、運用に関する洞察を得て、ビジネス価値をもたらすためのサポートプロセスと手順を継続的に改善する能力。
これはつまり、
「システムを構築する際に、リリース・保守のことを考えて構築した方が良いよ」
という意味です。
リリースの際にデグレを起こさないように、手順を自動化するとか、
何かトラブルが起こったときにログをすぐに検索できるようにするとか、
継続的にシステムを運用していくにあたって、運用工数を減らすように設計をし、
その運用方法は、定期的により良く改善していきましょうということです。
2.セキュリティ
このセキュリティの柱では、データ、システム、資産を保護して、クラウドテクノロジーを活用し、セキュリティを向上させる機能について説明します。
これはつまり、
「必要最低限の権限付与をすることや、データの保護をした方が良いよ」
という意味です。
AWSのサービスでは、権限付与の部分は利用者側の責任になります。
↓参考:AWS責任共有モデル
https://aws.amazon.com/jp/compliance/shared-responsibility-model/
開発者にはサーバにアクセスする権利を与え、サーバを削除する権限を与えないようにするとか、
IPアドレスでアクセスを制限するなど、必要最低限のアクセスしかできないようにする必要があります。
また、EBSやS3など、ストレージサービスに格納されているデータは
暗号化のオプションを忘れずにONにするようにしましょう。
3.信頼性
期待されるタイミングで、意図した機能を正確かつ一貫して実行するワークロードの能力。これには、そのライフサイクル全体を通じてワークロードを運用およびテストする機能が含まれます。
これはつまり、
「障害時に自動で復旧したり、アクセスが多くなったときにも動くようにした方が良いよ」
という意味です。
障害が起きても、事業が止まらないようにシステムの冗長化をしたり、
自動で復旧できるような設計にしましょう。
また、社内だけで使われる場合はある程度アクセス数は予測できるかもしれませんが、
社外に公開されるようなサイトでは、アクセス数を予測することは難しいです。
キャパシティを予測するよりも、負荷が高くなったときに勝手に拡張されるような
仕組みにする方が良いです。
4.パフォーマンス効率
システムの要件を満たすためにコンピューティングリソースを効率的に使用し、要求の変化とテクノロジーの進化に対してもその効率性を維持する能力。
これはつまり、
「新しいサービスを使えるようになり、効率よく設計・構築した方が良いよ」
という意味です。
AWSでは、ものすごいスピードで新しいサービスのリリースや、既存のサービスの改修が行われています。
そういったサービスを効果的に用いることで、
よりシンプルに、より効率的にシステムを設計・構築できるようになります。
IT担当者の方には、そういった新しいサービスを学べる時間を確保できるようになってほしいと思います。(時間がないのは重々承知の上ですが…。)
5.コスト最適化
最も低い価格でシステムを運用してビジネス価値を実現する能力
これはつまり、
「ビジネスを行うにあたって、必要最低限のコストで行った方が良いよ」
という意味です。
AWSは従量課金制なので、必要な分だけ使って必要な分だけ支払いをしましょう。
コンソール画面から、システムの使用状況も確認できるので、
そこから過剰なリソースかどうかを分析し、インスタンスタイプを下げるとか、
リザーブドインスタンスやスポットインスタンスを用いるとか、
マネージドサービスを利用するとか…
学べば学ぶほど、色んなコスト最適化の方法を知ることができます。
実際に私は前職で年間800万円のコストを削減することに成功しました。
AWSの資格試験でも、この5つの柱を中心にどう構築していくかを問われるので、
もし試験を受けられる方は、おさえておくと役に立つと思います。
お読みいただき、ありがとうございました。