0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GCPのCEでECSみたいなサービスを作りました。

Posted at

はじめ

こにちは。
ClassMethodの説明会聞いてECSを多く使うと感じて一度作りたいと思って挑戦しました。

なぜAWSではないGCPを選択したのか?

GCPのCreditが残っていたから使ってみました。

アーキテクチャ

image.png

  1. 接近方法
    VPCは接近ができなくて、publicVPCにpublic-nginxのサーバーを作って、このpublic-nginxのreverse proxyを通じて、frontendに接近できるようにしました。
    frontendでbackendに要請を送る時はpublic-nginxを通じてprivate-nginxに接近できるようにしました。
    private-nignxではbackendにreverse proxyで接近ができます。

  2. Load Balancing構築
    LoadBalancing作るには動的IPの割り当てる必要ですが、それを解決するためにconsulを使いました。

    consulについて
    consulをServer-based使ってconsul-agentでIPを登録と照会することでService Discoveryの技能を中心に使いました。
    consulを通じて動的IPの割り当てることができます。
    このIPとconsul-templateを使ってnignxで自動的にnginx.configを作るようにしてLoadBalancing構築しました。

    consulと似たようなサービスで、NetflixのEurekaもいます。

    【Link】
    consul_main_page : https://www.consul.io/
    consul_github : https://github.com/hashicorp/consul

  3. Auto Scailing構築
    GCPのMIGというサービスを使ってサーバーのResourceの問題が発生した時にCEを作りshell scriptを使ってサーバーを構築して、consulにIPを登録します。
    それでnginxからtrafficをもらうことでサーバーの問題を解決できるようにしました。

勉強になったこと

  1. backendではlocalhost:8080/api/v1/readみたいに作る理由について知ることができました。
    理由はnginxで接近できる経路を食別ができるようにするためと
    k8sでrollingとかのDeployの方法のためです。

  2. dockerのcontainerはすべてlatestではない
    今回使った技術のconsulではlatestですればerrorが発生します。
    必ずVersionを名称する場合もあると知りました。

  3. サーバーを構築する時使ったコマンドをAutoScailingとか作る時使うことができるのでメモするとかshellscriptで作る必要があると知りました。

  4. 私みたいにVimが難しく感じる人もあると思います。
    それならnanoというものを使ってみてください。
    Vimより便利です。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?