クラスタ環境デプロイ - EKSクラスタ(AWS環境準備)
前回で、コンテナレジストリを導入し、コンテナイメージ用のリポジトリを準備しました。 今回はアプリケーション開発編の仕上げとして、Kubernetesクラスタ環境のEKSにアプリケーションをデプロイしましょう。 一般的なプロジェクトでは商用環境だけでなく、結合テスト、受け入れテスト等、様々なフェーズに応じた環境が準備されています。 また、各環境で外部システムとの接続先等の環境固有の設定/構成が必要だったり、コストの関係で全て同等のスペックで準備することが難しいといったケースがほとんどです...
記事を読むクラスタ環境デプロイ - EKSクラスタ(Kustomize導入)
本記事は、クラスタ環境デプロイ - EKSクラスタ(AWS環境準備)からの続きです。 ここでは、Kubernetesのマニフェストファイルを、Kustomizeに対応した構成へと見直していきます。 Kustomizeはbaseと呼ばれる環境共通部分にパッチを当てることで、各環境の完全なマニフェストを生成します。 以下のようなフローで最終的にデプロイする形になります。 Kustomizeのパッチは、以下の方法をサポートしています...
記事を読むクラスタ環境デプロイ - EKSクラスタ(デプロイ)
本記事は、クラスタ環境デプロイ - EKSクラスタ(Kustomize導入)からの続きです。 これまで、DynamoDBやS3等のAWSリソースを準備し、環境差分を吸収するために、Kustomizeを導入しました。 ここからは、仮想の商用環境としてAWS EKSにアプリケーションをデプロイします。 まずは、前回ローカル環境向けにパッチファイルを準備したように、EKS環境向けのoverlaysを用意します。 最終的には、以下の構成となります...
記事を読むクラスタ環境デプロイ - コンテナレジストリ(ECR)
さて、ここまででWeb・バッチアプリケーションの開発が終わり、ローカル環境で動作確認ができました。 いよいよここからは、AWS EKSにアプリケーションをデプロイしていきます。 その前に、アプリケーションをEKSにデプロイする際、コンテナイメージはどこで管理すべきでしょうか? 今まではコンテナのビルドと実行が同一環境(ローカル環境)のため、イメージビルド後にそのまま実行できていました[1]...
記事を読むKubernetesマニフェスト作成 - バッチアプリケーション
前回は、ローカル環境のKubernetesでタスク管理ツールのWebアプリケーションを動かすことができました。 今回は日次でタスク完了レポートを出力するバッチアプリケーションを作成してみましょう。 Kubernetesを利用する主なメリットとして、セルフヒーリングによる耐障害性強化や、大規模トラフィックに耐えられるスケーラビリティが得られる等の印象が強いかと思います...
記事を読むeleventy-plugin-code-clipboard
eleventy-plugin-code-clipboardは、静的サイトジェネレータツールの1つであるeleventy(以下11ty)のカスタムプラグインです。 このプラグインは、マークダウンのコードブロックで生成されたものに対して、クリップボードコピー機能を提供するもので、本サイトでも使用されています。 プラグインは以下の2つの機能で構成されます。 markdown-it カスタムレンダラー # 11tyのマークダウンパーサー markdown-itのカスタムレンダラーです...
記事を読むKubernetesマニフェスト作成 - Webアプリケーション
ここまででローカル環境で開発する準備が整いました。 ここからは、実際に動くアプリケーションをローカル環境にデプロイしましょう。 このチュートリアルでは、一般的によくあるであろうシンプルなWebアプリケーションとバッチアプリケーションを例に見ていきます。 題材としてはタスク管理ツールとします。このツールの機能としては以下になります...
記事を読むローカル開発環境準備 - ローカルAWS(LocalStack)
これまでローカルでKubernetesを実行する環境としてminikube、開発からデプロイまでを自動化するツールとしてSkaffoldを導入し、いよいよ開発が始められる準備が整ってきました。 最後にアプリケーションが外部プロダクトに依存する場合を考えてみましょう。 一般的にアプリケーションはそれのみで完結することはほとんどなく、DBやキャッシュ等他のプロダクトを利用することが大半です。 ここでは開発対象のアプリケーションがS3やDynamoDB等のAWSのサービスを使うことを想定してみましょう...
記事を読むローカル開発環境準備 - 実行環境(minikube)
それではここからはアプリケーションの開発編に入っていきましょう。 チームでKubernetesで動作するアプリケーションを開発する場合に、どうやって各開発者がコンテナ環境で動作するアプリケーションを実装・テストすればよいでしょうか? クラウド上に各個人のクラスタ環境を準備するのが理想的ですが、コスト的に難しいというのが一般的かと思います...
記事を読むローカル開発環境準備 - 自動化ツール(Skaffold)
前回は、minikubeを使ってローカル環境内でコンテナアプリケーションを実行する環境を整えました。 しかし、サンプルアプリのデプロイを通して、ソースコードに加えて、コンテナイメージのビルドやKubernetesマニフェストの反映等、手順が煩雑だと感じられた方も多かったのではないでしょうか? コンテナ以前のアプリ開発だと、任意のIDEを利用してソースコードを記述し、IDEまたはコマンドからそのままローカル環境で実行・確認していた方が多いと思います...
記事を読む