Open7
Amazon ECS Anywhere 検証スクラップ
Amazon ECS Anywhere の料金 (2021/5/30時点)
Tweet
- Amazon ECS Anywhere の料金は以下を参照
- マネージド ECS Anywhere オンプレミスインスタンスごとに、1時間あたり
$0.01025
支払う - 1日稼働させると $0.01025/hour * 24 hour = $0.246/day ≒
27円/日
- ひと月(最大31日)稼働させると $0.246/day * 31 day = $7.626/month ≒
837円/月
Amazon ECS Anywhere へのオンプレミスインスタンス登録手順
Tweet
- AWSマネジメントコンソールにサインインする
- サービス → Elastic Container Service → クラスターを選択 or 作成
-
ECS インスタンス
タブ →Externalインスタンスの登録
をクリック -
ステップ 1: Externalインスタンスのアクティベーションの詳細 で各項目を入力して
次のステップ
をクリック- アクティベーションキーの有効期限(日数):
1
- インスタンス数:
1
- インスタンスロール:
新しいロールの作成
or 既存のロール選択
- アクティベーションキーの有効期限(日数):
-
ステップ 2: Externalインスタンスの登録 で表示されるコマンドを
コピー
してSlackやNotionなどにメモしておく- メモを取ったら
完了
をクリックしてExternalインスタンスの登録画面は閉じてもよい
- メモを取ったら
- ECSクラスターに登録したいオンプレミスインスタンス上で5のコマンドを実行する
- ECSインスタンス一覧にオンプレミスインスタンスが表示された完了
ECS Anywhere オンプレミスインスタンス上でECSタスクを稼働させる(ECSサービスを使う場合)
Tweet
- AWSマネジメントコンソールにサインイン→サービス→ECS
- タスク定義を作成する
- タスクを稼働させるECSクラスターを選択して、サービスを追加
- 2で作成したタスク定義を指定する
- ECSタスクが稼働したら完了
セッションマネージャーでECS Anywhereで登録したオンプレミスインスタンスに接続する
Tweet
- 「アカウントレベルおよびリージョンレベルのオンプレミスインスタンスの設定」をアドバンスドに変更する必要がある
- 月額料金は1台あたり↓くらいになる
- $0.00695/hour * 24 * 31 = $5.1708/month ≒ 568円/月
Amazon ECS Anywhereで登録したオンプレミスインスタンスを登録解除する
Tweet
- フリートマネージャーからマネージドインスタンスの登録解除を行うと、ECSクラスターからもオンプレミスインスタンスが外される
- 単純に登録解除するだけならこれでOKだが、再度 ECS Anywhere で登録しようとするとエラーになる
- Amazon ECS Anywhere で再度登録できるようにするためには、オンプレミスインスタンスの
amazon-ecs-init
とamazon-ssm-agent
及び関連ファイルを削除する必要がある(Ubuntuの場合)
Ubuntu 20.04でのAmazon ECS Anywhere 関連ファイルクリーンアップ方法(非公式)
# Ubuntu 20.04 の場合
# あらかじめAWSマネジメントコンソールでオンプレインスタンスの登録解除をしておくこと
# → マネージドインスタンス(高度なインスタンス)の場合は以下の手順で解除できた
# 1. Systems Manager → フリートマネージャー → インスタンスを選択
# 2. インスタンスアクション → 「このマネージドインスタンスの登録を解除する」を選択
# 3. オンプレインスタンス側で以下のコマンドを実行したらクリーンアップ完了
# ECSサービス停止
sudo systemctl stop ecs
sudo systemctl disable ecs
# ECS関連ディレクトリのリネーム
sudo mv /etc/ecs /etc/ecs.old
sudo mv /var/lib/ecs /var/lib/ecs.old
# SSM Agentサービス停止
sudo systemctl stop amazon-ssm-agent
sudo systemctl disable amazon-ssm-agent
# SSM Agent関連ディレクトリのリネーム
sudo mv /etc/amazon/ssm /etc/amazon/ssm.old
sudo mv /var/lib/amazon/ssm /var/lib/amazon/ssm.old
# ECS Anywhere登録スクリプトが/tmpに残っているとエラーがでて登録できないので削除
rm -f /tmp/ecs-anywhere-install.sh
# パッケージの削除
sudo dpkg -r amazon-ecs-init
sudo dpkg -r amazon-ssm-agent
Amazon ECS Anywhere でクラスター登録コマンド実行時に「Warning: Failed to create the file /tmp/ecs-anywhere-install.sh: 」が出る時の対処方法
- オンプレミスインスタンス上でExternalインスタンス登録スクリプトで以下のエラーがでる
Warning: Failed to create the file /tmp/ecs-anywhere-install.sh:
Warning: 許可がありません
-
/tmp/ecs-anywhere-install.sh
を削除してから再度登録コマンドを実行するとよい
rm /tmp/ecs-anywhere-install.sh
ExternalインスタンスにセッションマネージャーでSSH接続する
- 以下の記事を参考に設定する
ポイント
- SSH接続する側に Session Manager Plugin をインストールする必要がある
- SSHコンフィグファイルに以下の設定を書いておくと便利
~/.ssh/config
# SSH over Session Manager
host i-* mi-*
ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
# SSH接続する
ssh mi-xxxxxxxx