今回は初の試みでございます。AWS Fargateを利用してSSHコンテナを動かしてみました。前回のブログでSSMエージェントを使ってログインを試したかったんですが、Alpine Linuxが対応しておらず、結局ssh-serverを立ち上げたほうが楽なのでは?と判断したので、まずは概要と構成から説明していましょう。

[Alpine Linux][Docker]/lib/rc/sh/openrc-run.sh: line 100: can’t create /sys/fs/cgroup/blkio/tasks: Read-only file system


■環境/概要

  • 本番のDB接続やaws-cliなど、確認用のSSHコンテナ(deploy container)が必要なため
  • VPCはPublicとNATゲートウェイ経由のPrivateネットワークと、Privateネットワークの構成
  • 2つのAWSアカウントがあり、両方ともVPCピアリングの設定をしている
  • AWS 01のbastionからAWS 02の対象のコンテナへSSHをする
  • AWS 02のセキュリティグループには22で10.0.0.0/16が許可されている

VPCの構成については以下を参考に。

AWSのVPCの基本まとめ


■IAM

  • add role

ecsTaskExecutionRole

  • ecs-task.json


■ECR push

  • Dockerfile

まずECRでリポジトリを作成してpushしましょう。


■クラスターの作成

  • ネットワーキングのみを選択して次のステップ

  • クラスターの設定


■タスク定義の設定

  • 起動タイプの互換性の選択

  • タスクとコンテナの定義の設定

タスクロールは ecsTaskExecutionRole

  • コンテナの追加


■クラスター > サービス > 追加

  • サービスの設定

  • ネットワークの構成

今回はPublic IPとロードバランサーは必要ないので無効化しましょう。


■確認

OK!!!!!!


■まとめ

Fargateおもしろい!設定項目が多いので、次回はこれらをTerraformで自動化していきたいと思います。

しかし、これができるとなるとbastionもFargate化して、毎週コンテナの脆弱性update(Trivyで)して作り直すみたいな運用ができそう。コンテナのデプロイはecs-deployかな。またね!

※Terraform化もしてるので参考に。

[AWS][Terraform][Fargate]ECSを自動化してみた

カテゴリー: AWSDockerECS/Fargate

adachin

1989年生まれのFindy/SRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWSでのインフラ構築、Docker開発環境の提供、IaC、新技術の検証、リファクタリング、セキュリティ強化、分析基盤の運用などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTA/TechBullで未経験者にインフラのコーチング/コミュニティマネージャーとして立ち上げと運営をしている。また、過去「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください