イントロダクション
AWSのクラウドアーキテクチャをゼロから設計しようとしたことがある人なら、すでにご存知だろう。何かを構築する方法は千差万別で、それを台無しにする方法も同じくらいある。
AWSのドキュメントを少し見ただけでは、「クールだ。しかし、実際の国際的な環境では、一流のプラクティスは、実際の企業のニーズ、価格帯の制限、またはヒューマンエラーに最初に触れることはあまりありません。そのため、perfsysのようなプロフェッショナルと早い段階から一緒に仕事をすることで、後々保護ホールやスケーリングの問題でモグラたたきのようなギャンブルに巻き込まれることを防ぐことができる。
ゴールは単に動くものを手に入れることではありません。トラフィックが急増したり、地域が瞬きしたりしても倒れないシステムを構築することだ。
当たり前のことから始めよう:AWSは野獣だ
AWSを使えば実質的に何でも構築できる。EC2、Lambda、RDS、S3、IAM、VPCなどなど。問題は?選択肢が多けれ ば多いほど、混乱が生じやすくなる。
AWSの設計が悪いわけではない。ただ、適切に設計しなければならないということだ。そうでなければ、あるチームが「クラウドスパゲッティ」と呼ぶような、相互依存のサービス、ハードコードされた秘密、タグ付けもロギングもなく、何がどれだけのコストをかけているのかまったくわからないという状態になってしまう。
信頼性とセキュリティは "欲しいもの "ではない
セキュリティと信頼性を将来の問題として扱いたい誘惑に駆られる。「本番稼動後にセキュリティーを強化しよう」。「次のスプリントで監視を追加しよう。しかし、データ流出や数時間に及ぶ停電に対処したことのある人に尋ねてみてほしい。これらのステップをスキップすることは、徹夜をすることにつながるのだ。
信頼性の本当の意味
これはスライドデッキ上の稼働時間保証の話ではありません。失敗を想定したエンジニアリングのことだ。サービスがダウンする。ディスクは故障する。APIはタイムアウトする。重要なのは、障害が発生してもシステムが機能し続けるかどうかだ。
アベイラビリティ・ゾーン全体で冗長性があるか?データベース・ノードが故障しても、データが失われたりエラーが発生したりすることなく、システムが耐えられますか?デプロイしやすかったから」という理由で、クリティカルなワークロードを単一のリージョンで実行していないか?これらは、稼働中のシステムと回復力のあるシステムを分ける質問です。
セキュリティは?IAMだけじゃない
アイデンティティとアクセス管理(IAM)は最初の壁だ。しか し、セキュリティはそれだけにとどまらない。一般にアクセス可能なS3バケット。過剰に許可されたロール。Lambda関数にハードコードされた秘密。"コスト削減のため "のログオフ。これらはすべて時限爆弾だ。
aws well architectedフレームワークを使えば、これらの問題が爆発する前に特定することができる。このフレームワークは、アーキテクチャをセキュリティ、信頼性、オペレーショナル・エクセレンス、パフォーマンス効率、コスト最適化の5つの主要分野に分類し、各分野を正直に評価することをチームに強制する。これは銀の弾丸ではないが、難しい質問をするよう促してくれる。
実際に重要なビルディングブロック
さて、本題に入ろう。AWS上でセキュアで信頼性の高いアーキテクチャを構築する際に重要なこと、そしてチームが最もよく間違えることを説明しよう。
IAMロールの正しい使い方(本当にそうだ)
IAMロールは強力だ。強力すぎることもある。何かがうまくいっていないからといって、"AdministratorAccess "をつけるのは簡単すぎる。
効果的なSEOのためのオールインワン・プラットフォーム
ビジネスが成功する背景には、強力なSEOキャンペーンがあります。しかし、数え切れないほどの最適化ツールやテクニックがあるため、どこから手をつければいいのかわからないこともあります。でも、もう心配はありません。効果的なSEOのためのオールインワンプラットフォーム「Ranktracker」を紹介します。
早めにロックする必要がある。最小特権の原則は単なるベストプラクティスではなく、唯一まともな運用方法なのです。ということだ:
-
サービスごとのロールのスコープ
-
権限におけるワイルドカードの回避
-
短期間の認証情報
-
人間のユーザーにはMFAを義務付ける
面倒だと思いますか?そうだ。しかし、設定ミスのLambdaから顧客データが流出した理由を上司に説明するのも面倒だ。
ネットワークの分離
これも近道が裏目に出る分野だ。超複雑なネットワーク・セットアップは必要ないが、いくつかの基本的なことは長い道のりだ:
-
パブリック・サブネットは、インターネットに面する必要があるもの(ALBなど)のみに使用する。
-
それ以外はプライベート・サブネット
-
アウトバウンドアクセスを制御するためのNATゲートウェイ
-
パブリックインターネットにアクセスしないAWSサービストラフィックのためのVPCエンドポイント
すべてが同じサブネット上にあるフラットなVPCは簡単に感じるかもしれない。すべてが同じサブネット上にあるフラットなVPCは簡単に感じるかもしれない。