Amazon Web Servicesコマンドラインインターフェイス(AWS CLI)はコンソール上からAWSのサービスを管理するための統合ツールです。対応インターフェースはWindows、Linux、macOSです。
awsコマンドを通じて、AWS ECS、AWS ECR、AWS Lambdaなど、ほぼすべてのAWSサービスを操作・設定することができます。
Amazon Web Services Fargate(AWS Fargate)はコンテナ向けのサーバーレスコンピューティングサービスです。AWS上でコンテナを呼び出し動作するサービス「Amazon ECS」を利用する際に起動形式の一つとして選択できます。
細かいサーバー設定が不要であり、サーバー管理、リソース割り当て、スケーリングなどの環境設定をAWSに任せることができます。また、かかった稼働時間あたりの課金される形式であること、呼び出し後は実行完了時に停止するという特徴から、呼び出し機会が比較的少ない機能に向いています。
コンテナの動作に関する制限はありませんが、他サービスと連動させる場合はタスクロール・タスク実行ロールに権限を付与する必要があります。
Amazon Elastic Container Service(Amazon ECS)は、簡易にAWS上でコンテナを呼び出し動作させるサービスです。ECS上で環境を設定し、起動形式としてAWS Fargateの他に、Amazon EC2及び他のオンプレミスコンピューティングから選択できます。
Amazon Elastic Compute Cloud (Amazon EC2)は、AWSの中でも自由度が高いコンピューティングサービスです。「インスタンス」という単位でマシンを稼働させることができます。クラウドサーバーとして一度設定をして立ち上げれば、稼働中はほぼリモートマシンと同様に扱う使い方が可能です。またAmazon ECS上で、高度に設定されたコンピューティング手段として呼び出すことも可能です。
細かい設定が可能な反面、リソースに関わる環境設定を全て行う必要があります。また、停止条件を設定しない場合は稼働し続けて課金額がかさむデメリットがあります。そのため、細かく条件を設定したい場合などに向いています。
アップロードした簡素なコードを実行することに機能を絞ったサーバーレスコンピューティングサービスです。
webコンソール上で記述したコードか、zipファイルに組み込んだコード、またはコンテナ内に記述したコードを実行することができます。
Lambdaはコンテナ実行時の制限が複数あります。例えば、コンテナ実行するユーザーにroot権限を持たせられない、呼び出す関数の名前・配置先などです。そのため、コンテナ実行する際はAWS Fargateとは実行内容を変える必要があります。
Amazon Elastic Container Registry(AWS ECR)はコンテナを保存、共有、デプロイすることができるAWS上のリポジトリです。Dockerからpush / pullすることができ、AWS上のサービスがコンテナを扱うことに最適化されています。
AWS上のサービスがコンテナを扱う際はここからコンテナをpullすることができます。
AWS Identity and Access Management(AWS IAM)はAWSへのアクセス権限を管理するサービスです。
AWS上で扱われるアクセス権限を、「ロール」や「ポリシー」という単位で管理します。
細かいルールである「ポリシー」を組み合わせて、特定のサービスで使うために目的の権限が付与された「ロール」を作成し、管理するなどの使い方ができます。
Amazon Simple Storage Service (Amazon S3) はオンラインで利用可能なストレージです。AWS CLIを用いてファイル操作をするなど、AWSサービスと連動させてデータを扱えるのが特徴です。
「バケット」と呼ばれるデータ保持の単位を作成し、そこに実際のファイルなどを配置して利用します。
Dockerは「コンテナ」と呼ばれる独立した環境の単位を作り、その中でアプリケーションなどを実行できるコンテナ環境作成プラットフォームです。
Dockerを用いることで、実行したい環境・処理を記述したコンテナの作成やアップロード(push)/ダウンロード(pull)及び実行操作をすることができます。
Dockerには、コンソール上で動作するDocker Engineと、デスクトップアプリとして動作するDockerデスクトップがあります。