MyUtils

View on GitHub

AWSについてまとめる

awsについてまとめるためのメモ

コントロールプレーン
データプレーン
AWS Lambda/AWS Runner について
- Lambda入門
- EC2について



ECSの用語について


システム運用について

システムの構築において以下の3つの観点で構築する

オブザーバビリティ

オブザーバビリティを構成する要素 CloudWatch(メトリクス),CloudWatch logs(ログ運用), FireLens(ログ運用),X-Ray(トレース),で設定できる。

  1. メトリクス 何が起きているのかを把握する。
    定量的なサービスの計測情報(リクエスト数,メモリ使用率など)

  2. トレース どこで起きているのか
    • リクエストのイベント記録
    • サービス間のリクエスト情報
  3. ログ なぜ発生したのか
    • 訂正的なサービスのイベント記録
    • エラーログ

CI/CD

codeシリーズを使うことでCI/CDパイプラインを構築できる

サービス 用途 備考
CodeCommit ソース管理  
CodeBuild ビルド,テストの実行  
CodeDeploy デプロイの実行  
CodePipeline パイプラインの構築  

オーケストレータについて

コンテナに関してオーケストレータがある。オーケストレータ処理の分散自動復旧 コンテナのデプロイ機能を担っている。

Kubernetesが事実上のデファクトスタンダードであり、他にRed HatのOpenShift dockerのswarmがあげられる。 また、KubernetesをベースとしたAmazon EKS,GKE(Google),AKS(Microsoft Azure)などがあげられる。

一般企業が採用する場合、KubernetesはOSSのため、自身で対処法 or 修正を待つ こととなってしまう。
そういった意味でOpenShiftであれば技術的なサポートを受けることができる。



コントロールプレーン

一般的にIT業界では「ネットワークのルーティングを制御するモジュール」であるが、 AWSにおいては「コンテナを管理する機能」を指している。

AWSではAmazon Elastic Container Service(ECS),Amazon Elastic Kubernetes Service(EKS)の2つが提供されている。



ECSについて

ECS上でアプリを起動するにはコンテナがいる。 コンテナが動作するコンポーネントをECSでタスクと呼ぶ。

タスク定義はJSONで行い、イメージ、リソースなどの設定を行うなう。 タスク定義に含めるコンテナ定義は複数設定可

サービス(Service) 指定した数だけタスクを維持するスケジューラ。作成時に起動するタスク数、ロードバランサ、タスクを実行するネットワークを指定する タスクが何らかの理由で終了した場合、タスク定義を元に新しいタスクを生成してタスク数を維持する。

EKSについて

Kubernetesをベースに作られるため、特別ECSと違ってAWS独自の用語等を意識することはない。



データプレーン

コンテナが実際に稼働するリソース環境。AWSが提供するデータプレーンは2種

ECS/EKS Anywhereについて

ECS AnywhereはECSのコントロールプレーンをAWSで動作させつつ、 データプレーンを自身が管理するサーバで動作させることができるサービス

EKS Anywhereはコントロールプレーン、データプレーンを自身が管理するサーバ上で立ち上げるサービス



AWS Lambda/AWS App Runner について

lambdaは利用者がコードをアップロードするだけでコードを実行できるサービス。 AWS側でリソースを構築する(Firecrackerと呼ばれるコンテナ上で実行される。) データプレーンを意識しないで利用できるが、 ECS,EKSといったコントロールプレーンには配置できない

App Runnerはプロダクションレベルでスケール可能なWebアプリを展開するためのサービス。 GitHubと連携してビルド&デプロイ,ECR(Amazon Elastic Container Registry)のコンテナのイメージデプロイも可能。 ECSとFragateにるアプリの構築と違いネットワーク、ロードバランシング、CI/CD設定の足回りを整える必要がない