はじめに
第1章 セットアップ
第2章 サービス公開
第3章 デプロイフロー
第4章 監視
第5章 Kubernetesの運用
第6章 AWSにおけるKubernetes向けプログラムたち
おわりに
「AWSとTerraformで学ぶプロダクションレディなKubernetes」では、AWSとTerraformを使ってプロダクションレディなKubernetesの構築と運用方法を学びます。プロダクションレディとは何でしょうか?筆者の解釈では、プロダクションレディとはシステムの信頼性と開発効率がバランスよく整った状態であると考えます。
Kubernetesを取り巻くエコシステムは膨大です。Kubernetesを扱いはじめてまだ間もないと、自分たちのKubernetes環境をどのようにプロダクションレディな状態にすればよいのか悩むと思います。本書を読むことで、プロダクションレディなKubernetesの一例を学ぶことができ、Kubernetesに対する悩みを解決するきっかけを掴めるはずです。あくまで一例ですので、ベストな選択肢ではないかもしれません。ただ、本書を理解したあとであれば、Kubernetesにおけるエコシステムの何を取捨選択すればよいのか判断基準ができると思います。本書が、Kubernetesへの理解を深めるための一助になれば幸いです。
対象読者は「Kubernetesを学びたい人」です。
Kubernetesの初心者であれば、最初から手を動かしながら読むとKubernetes上でひととおりのサンプルシステムを構築できます。プロダクションレディなKubernetesをどのように実現するのかを学ぶことができます。
すでにある程度Kubernetesを理解されている方であれば、目次から興味のある項目を読んでいくといいでしょう。自分のやり方と比較しながら読んでもらうと、よりKubernetesの理解が深まると思います。
本書では、多くのAWSのサービスを扱います。これらのサービスは利用時間に応じて料金がかかるものがほとんどです。本書の内容を実施するにあたっては、十分ご注意ください。ちなみに、AWSのKubernetesサービスであるAmazon EKSでは、1時間あたり0.10USDの料金が発生します。
不要なAWSリソースは適宜削除しましょう。一度削除してもまたTerraformで作れます。
また、筆者の環境の都合により、本書はmacOS環境が前提の内容になっております。他OSでの各種プログラムのインストール、セットアップに関しては適宜読み替えて頂ければと思います。
本書に掲載されているコードは次のリポジトリーで公開しています。
・https://github.com/hi1280/aws-terraform-k8s-production-ready
・https://github.com/hi1280/front-end
本書に記載された内容は、情報の提供のみを目的としています。したがって、本書を用いた開発、製作、運用は、必ずご自身の責任と判断によって行ってください。これらの情報による開発、製作、運用の結果について、著者はいかなる責任も負いません。
本章では、AWSとTerraformを使って、Kubernetes環境を構築します。本書では、Kubernetes環境の構築にAmazon EKS(以降、EKS)を利用します。AWSではEKSを使うと、マネージドなKubernetes環境を作成できます。Terraformは、AWSなどのインフラストラクチャを管理するためのツールです。本書では、Terraformを使ってEKSなどのAWSのリソースを作成していきます。TerraformでEKSのリソースを作るには、Terraform公式のモジュールレジストリにあるterraform-aws-eks1を利用します。このTerraformモジュールを利用すると、EKSに必要なIAMロールなどを作成してくれるので便利です。
Terraformを使うにはAWS CLI2が必要になります。本書では、すでにAWS CLIをインストールしているものとします。
本節では、Terraformのセットアップを行い、Terraformを使ってAWSのリソースを作成、削除できることを確認します。TerraformをAWSで使うには、Terraform用のIAMユーザーを作成し、アクセスキーを発行します。そのアクセスキーをAWS CLIに設定するとTerraformからAWSを操作できます。
TerraformからAWSのリソースを操作できるように、Terraformのセットアップを行います。
AWSのマネージメントコンソールのIAMからユーザーを選択し、ユーザーを追加をクリックします(図1.1)。
ユーザー名を入力します。プログラムによるアクセスをチェックして、次のステップをクリックします(図1.2)。
既存のポリシーを直接アタッチを選択します。AdministratorAccessをチェックし、次のステップをクリックします(図1.3)。
タグは追加せず、次のステップをクリックします。ユーザーの作成をクリックします(図1.4)。
アクセスキーが表示されます(図1.5)。
このあとに使用するため、アクセスキーIDとシークレットアクセスキーをコピーしておきます。
AdministratorAccessは、AWSにおいて管理者権限となるIAMポリシーです。何でもできてしまう権限のため、アクセスキーの扱いには注意が必要です。
次のコマンドで、AWS CLIの設定を行います。設定を行うには、aws configureを利用します。本書では、すでにAWS CLIをインストール済みとしています。
$ aws configure
AWS Access Key ID [None]: AKIAXXXXXXXXXXXXXXX
AWS Secret Access Key [None]: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Default region name [None]: ap-northeast-1
Default output format [None]: json
AWS Access Key IDとAWS Secret Access KeyにコピーしておいたアクセスキーIDとシークレットアクセスキーを入力します。
次のコマンドで、Terraformのインストールを行います。macOSではbrew3が利用できます。
$ brew install terraform
本書では、Terraformのバージョンv0.14.6を使用しています。
次のとおりに、terraformを実行してUsageの出力が行われれば、正常にインストールされています。
$ terraform
Usage: terraform [global options] <subcommand> [args]
...