前提条件
ECS FargateでECS Execを使わず、SSHでログインをしたいと思います。
DockerイメージにSSHDとNginxをインストールしたイメージを利用してみます。
ECS SSH設定方法(その8)
1. EC2サーバーでDockerイメージを作成いたします。(今回はAmazonLinux2023なります。)
下記のコマンドを実施してください。すでにdockerはインストールされていることを前提とします。
※supervisorを利用してプロセスを複数起動できるようにいたします。
| コマンド |
|---|
| $ mkdir ssh-nginx |
$ cd ssh-ngnix
$ vi Dockerfile
FROM public.ecr.aws/amazonlinux/amazonlinux:2023
RUN dnf -y update && \ dnf -y install nginx awscli openssh-server python3-pip procps vim-minimal && \ dnf clean all
RUN pip install supervisor
RUN mkdir /var/run/sshd && \ echo 'root:password' | chpasswd && \ sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config && \ sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config && \ ssh-keygen -A
RUN echo "Test page." > /usr/share/nginx/html/index.html
COPY supervisord.conf /etc/supervisord.conf
RUN ln -s /usr/local/bin/supervisord /usr/bin/supervisord
EXPOSE 22 80
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
|
$ vi supervisord.conf
[supervisord]
nodaemon=true
[program:sshd]
command=/usr/sbin/sshd -D
autostart=true
autorestart=true
[program:nginx]
command=/usr/sbin/nginx -g "daemon off;"
autostart=true
autorestart=true
|
イメージ作成はこちらの内容をご参考にしてください。
2. 「Elastic Container Registry」にアップロードして、ECS Fargateを作成いたしましょう。
ECS Fargateはこちらの内容をご参考にしてください。
3. EC2サーバーからECS Fargateにログインいたします。
下記のコマンドを実施してください。
※「クラスター」→「サービス」→「タスク」→対象「タスク」→「プライベート IP」
もちろん、パブリック IPでもログインは可能です。
| コマンド | 説明 |
|---|
| $ ssh -l root 172.16.0.118 | 「プライベート IP」を指定してSSHでログインいたします。 「パブリックIP」でも問題ありません。 |
| $ ps -ef | psコマンドでプロセス状況を確認いたします。 |
| $ curl http://localhost | nginxの稼働状況を確認いたします。 |
以上で「Amazon ECS SSH設定方法(その8)」を完了いたします。