Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RDS Proxy と踏み台用の ECS Fargate を構築 #37

Merged
merged 10 commits into from
Aug 2, 2021

Conversation

kobayashi-m42
Copy link
Member

@kobayashi-m42 kobayashi-m42 commented Jul 25, 2021

issueURL

#13

Doneの定義

  • RDS Proxyが構築されていること
  • 踏み台用のECS Fragateが構築され、RDSに接続できること
  • LambdaからRDS Proxyを使ってRDSに接続できること

変更点概要

下記のリソースを構築

  • RDS Proxy
    細かい設定値の調整は行なっていない。STGでの検証の上、再度見直す想定。
    また、aws provider の現在のバージョンでは RDS Proxy に対応していなかったので、最新バージョンにアップグレードした。

  • ECS Fargaate
    DBユーザーの作成などで踏み台が必要になるため、ECS Fargateを構築。
    踏み台用のイメージのDockerfileを用意し、ローカル環境からECRにpushしている。
    コスト削減のためECSサービスで設定しているタスク数を0に変更し、ECSが起動しないようにしている(AWSコンソールから変更)。

# ECRへのpushは下記を実行
aws ecr get-login-password --profile lgtm-cat --region ap-northeast-1 | docker login --username AWS --password-stdin xxxxxxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/lgtm-cat-bastion
docker build --rm -t bastion docker/.
docker tag bastion:latest "xxxxxxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/lgtm-cat-bastion":latest
docker push "xxxxxxxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/lgtm-cat-bastion":latest
  • Lambda 用の Security Group
    Serverless でデプロイする Lambda に設定するための Security Group を構築。
    https://github.com/nekochans/lgtm-cat-lambda/blob/main/serverless.yml#L71-L72 で設定される。
    Lambda に関しては STG、PROD で構築することを想定している。
    このPRではSTGのみ構築した。
    また RDS の構築の前に Security Group を構築する必要があるので、RDS のディレクトリを下記の通り変更した。
    prod/18-rds -> prod/22-rds
    Security Group ディレクトリは 21-lambda-securitygroup

レビュアーに重点的にチェックして欲しい点

  • 踏み台のDockerfileをどこに定義するか迷ってproviders/aws/environments/prod/22-rds/dockerに定義したけれど、他にいい案があればコメント貰えると嬉しい!
  • 踏み台に ECS Exec する方法についてどこに記載するかも迷っているんだけれど、このリポジトリの README が良いかな?

補足情報

ECS Exec

ECS Execに必要な条件と実行方法について記載。

前提条件

下記がインストールされていること

コマンド

ECSを起動してタスクIDを確認して、下記を実行することでコンテナに入ることができる。

aws ecs execute-command  \
    --profile lgtm-cat \
    --region ap-northeast-1 \
    --cluster lgtm-cat-bastion-cluster \
    --task <タスクIDを> \
    --container bastion \
    --command "/bin/sh" \
    --interactive

@kobayashi-m42 kobayashi-m42 force-pushed the feature/issue13/rds-proxy branch from 45cce03 to a857e4b Compare July 28, 2021 14:09
@kobayashi-m42 kobayashi-m42 marked this pull request as ready for review August 1, 2021 11:58
@kobayashi-m42 kobayashi-m42 self-assigned this Aug 1, 2021
@kobayashi-m42 kobayashi-m42 requested a review from keitakn August 1, 2021 11:59
Copy link
Member

@keitakn keitakn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

対応ありがとう🐱!

ECS Execの方法も記載ありがとう!

2件コメントしたんだけど、1件は軽微な修正でもう1件は別で対応って形になるかなと思う!

↓↓「レビュアーに重点的にチェックして欲しい点」の回答だよ↓↓

踏み台のDockerfileをどこに定義するか迷ってproviders/aws/environments/prod/22-rds/dockerに定義したけれど、他にいい案があればコメント貰えると嬉しい!

これに関しては、どの部分か迷うけど、これ用にリポジトリ作るのも冗長な気がするから、ここで良いかなと思った!

踏み台に ECS Exec する方法についてどこに記載するかも迷っているんだけれど、このリポジトリの README が良いかな?

そうだね、このリポジトリの README で良いと思う👌

@kobayashi-m42
Copy link
Member Author

@keitakn レビューありがとう!
踏み台の Dockerfile については現状のままとするね!
踏み台に ECS Exec する方法については README に記載したよ!76f2b89

Copy link
Member

@keitakn keitakn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

色々、対応ありがとう🐱!

このPRは問題なさそう👌

LGTMeow

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants