この記事の目的
現在、AWSを使用してstreamlitで開発したWebアプリケーションをプライベートサブネット内にコンテナとしてデプロイするという作業を行っています。その中で意味の分からない設定があったので記録として残しておきます。
Webアプリケーションをリリースするまで
アプリケーションをリリースするのに、たくさんのサービスの設定が必要となります。
- VPC:AZ,サブネット、エンドポイント、セキュリティグループ(以下、SG)
- EC2:ターゲットグループ、アプリケーションロードバランサー、ヘルスチェック
- ECS:クラスター、タスク定義、オートスケーリング
Webアプリケーションを作成する段階でも、cloud9による開発からDockerコンテナ化によるDockerfile、tomlファイルの作成、ECR、Code Deployによるデプロイ自動化などたくさんやることはあります。
その中でも、SGのインバウンドルールを設定するときに、「設定しているSGに対して、それ自身をソースに指定する」とかいう何の意味があるかわからないことをする必要があります。
インバウンドルールについては以下を参照にしてください。普通に調べると出ると思います。
このインバウンドルールでは、ざっくり説明すると「パブリックサブネット内に入るのを許可するIPアドレスの範囲を設定」します。
たとえば、悪意のあるアクセスから守るために会社内の人しかアクセスできないようにすることができます。
そんなこんなで指定されたIPアドレスを設定して、いざECSでサービスを作成してデプロイしようとしたら…
デプロイできない!!!
なぜかデプロイできませんでした。
なんで!?と思いながら調査してみると、設定しているSGに対して、それ自身のSGIDを指定するとできるよ~とのこと。
設定して、試してみたら…
無事デプロイできた!!!
なんで指定する必要があるかはわかりませんが、動いたのなら問題ナシ!!!ということで、セキュアなシステムを構築することができました。
あとは、さらにセキュアにするためにCognitoを使用した認証機能を付けたりしようかなって思ってます。
終わりに
今回は、どうしても理解できなかったので、忘れないように記録を残そうという意味で記事を書きました。
どなたかわかる方がいましたらご教授いただければ幸いです。
データサイエンスだけでなく、AWS関係についても触れていますので、有益な情報がありましたら共有します。
それでは!!!