Dockerで起動できるReactアプリをEKSにデプロイしてみた

18113 ワード

EKSに触れたことがなかったのでReactアプリをEKSにデプロイしてみました。
大まかな流れは以下のようになります。

  • VPC、サブネット準備
  • kubectlインストール
  • kubectxインストール
  • IAM作成
  • EKSクラスター作成
  • Config編集
  • ノード作成
  • docker image作成
  • docker imageをECRにpush
  • namespace作成
  • deployment作成
  • service作成

VPC、サブネット準備

まずはVPCを作成します。
サブネット等も一緒に作成したいので、「VPC・サブネットなど」の方にチェックを入れます。

名前タグのところにeks-testと入力し、自動生成にチェックを入れます。こうするとサブネット名とかがeks-testから始まる名前に勝手に設定されます。

AZ、パブリック・プライベートサブネットは2つずつにします。
NATゲートウェイは料金が高いのでなしでVPCエンドポイントもなしにします。
「DNS ホスト名を有効化」と「DNS 解決を有効化」の両方にチェックを入れて作成をクリック。

作成完了後、サブネットのページに移動しeksで検索します。

今回作成したサブネットが表示されるので、publicが名前に含まれるサブネットを編集し、「パブリック IPv4 アドレスの自動割り当てを有効化」にチェックを入れます。

kubectlインストール

Kubernetesを操作するためにkubectlをインストールします。
私はbrewでインストールしました

brew install kubectl

その後、kubectl version --short --client でバージョンが表示されたらOKです。

kubectxインストール

kubernetesの名前空間の切り替え等をするためにkubectxをインストールします。
こちらもbrewでインストールしました。

brew install kubectx

IAM作成

次に後から必要になってくるIAMを作成します。
まずはEKSクラスターにつけるロールから作成します。

IAMロールの画面に移動し、ロールを作成をクリック
信頼されたエンティティタイプはAWSのサービスにチェックを入れます。
ユースケースはEKSと入力してEKS - Clusterを選択して次へボタンをクリック。

ロール名にmyAmazonEKSClusterRoleを指定し「ロールを作成」をクリックして作成します

参考
↓のステップ1