カナリアリリースに関連のある部分を図に起こしたものが以下です。 ECSクラスターの中にあるサービスに対してターゲットグループを設定し、ALBからのリクエストをタスクに割り振っています。 デプロイはGitHub ActionsのWorkflow Dispatchを使用し、ボタン押下で実行できます。このプロセスはDockerイメージをビルド、Amazon Elastic Container Registry(以下、Amazon ECRと表記)にイメージをプッシュし、Amazon ECSのタスク定義を更新すると自動的にタスクのローリングアップデートが走る仕組みを使用しています。 余談ですが、クーポンサービスでは以前Spring Boot 2.6を採用していました。 Spring Bootの3系へのアップグレードについては記事「出前館クーポンサービスでのサーバーアプリケーションのSpring Bo
『家族アルバム みてね』(以下、みてね)では、サービス開始当初よりAWS OpsWorksをオーケストレーションツールとして利用してきました。 しかし、サービスや組織の拡大に伴い、AWS OpsWorksによる運用上の課題が生じてきました。そこで、2018年ごろにAWS OpsWorksからAmazon EKSに移行するという意思決定を行いました。 その後、たくさんの試行錯誤や紆余曲折、回り道を経て、2021年にAmazon EKSへの移行が完了しました。 この記事では、4年近くに渡ったEKS移行の取り組みを時系列を追って紹介していきます。 その過程には、後に取りやめることになった設計や意思決定も多く含まれています。 記事の最後でEKS移行プロジェクトを振り返り、そこから得た学びをまとめます。 図 『家族アルバム みてね』のEKS移行のタイムライン AWS OpsWorksの課題とEKS
※本記事は2022年1月22日に公開された記事の翻訳版です。 この記事は、Developer Productivity Engineering Campブログシリーズの一環として、Platform Infraチームの Daisuke Fujita (@dtan4)がお届けします。 メルカリでは、すべてのクラウドインフラを宣言的構成で管理することがプラットフォームの中核となる考え方の一つです。メインのクラウドプロバイダーはGoogle Cloud Platform(GCP)であり、HashiCorp Terraformを使用してインフラをコードとして管理しています。Platform Infraチームは、すべてのTerraformワークフローを安全に管理するための社内CIサービスを提供しています。 Terraformはリソースプロビジョニングのためにクラウドプロバイダーのクレデンシャルを必要と
みなさんこんにちは。Backlog課のGitチームに所属するテリーです。今回は僕たちが日々運用するECS Fargate上のアプリケーションのデプロイ方法とそれをどう改善してきたかについてまとめました。デプロイについて迷っている方や日々の業務の改善が好きな人に読んでもらえたらと思います。 Git機能におけるデプロイ ECS上で動くアプリケーション BacklogのGitはEC2上で動くアプリケーションとECS Fargate上で動くアプリケーションで構成されています。 アーキテクチャの外観は上記のようなになっています。Gitのアーキテクチャについて過去に詳しく説明したブログを発表していますので詳しくはこちらを参照ください。 僕たちは上記のアーキテクチャ中の4つのアプリケーションをECS Fargate上で運用しています。また、内部的な話になりますがBacklogには内部構造として複数の本番
Terraformがバージョン1.0に到達、正式版に。AWSやAzure、VMwareなどマルチクラウド対応のプロビジョニングツール HashiCorpがオープンソースで開発しているマルチクラウド対応のプロビジョニングツール「Terraform」がバージョン1.0に到達し、正式版となりました。 Today we are announcing the GA release of #Terraform 1.0. This marks a major milestone for interoperability, ease of upgrades, and maintenance for your automation workflows for what has become a standard for cloud provisioning. #HashiConf https://t.co/
背景 TerraformはInfrastructure as Codeを実現してくれるとても素晴らしいツールである一方、運用時に以下のような問題が発生します。 個々人がローカルで実行する場合のオペミス パブリッククラウドリソースを扱うクレデンシャルの管理 そのため実行環境を統一(CIと連携など)したり、GitHubでplan結果を貼ってレビュー→問題なければマージ→(自動)applyといった運用をしているチームも多いことでしょう。 しかしTerraformはplanで成功してもapplyでコケることはちょくちょくあるため、そのPRが正しい状態かどうかは実行するまで分かりません。 またCIと連携することで神権限を持ったクレデンシャルを外部サービスに預けることとなり、漏洩リスクが増大しサービスに致命的な被害をもたらす可能性もあります。 このような諸々の課題を解決していい感じに自動化してくれるの
はじめまして、2020年3月に中途入社したSREチームの @bayashiok です。 今回は入社後、Fargateでサーバレスバッチ基盤を構築した話を書いていきます。 目次 目次 経緯 Fargateを選んだ理由 1. リソースの見積もりがCPU/Memoryだけですむ 2.スケーリングを考えなくて良くなる 3. セキュリティレベルの向上につながり管理負荷が減る 現行システムで発生している問題点の解消 構成 FargateのトリガーとしてRundeckを採用 理由1: バッチ実行が行われる場所でログを見たかった 理由2: ジョブ失敗やSlack通知の仕組み、リトライ方法やジョブ連携などの作り込みを簡単にしたかった ecs-taskとの連携について デプロイ 1. wrapperコンテナのデプロイ 2. バッチのデプロイ Fargateタスク実行について 移行後の総括 よかった点 悪かった
SREの侘美です。 最近はfirst call for オンライン診療の開発でRailsのコードを書いてました。 hashicorp/terraform-github-actions から後継である hashicorp/setup-terraformへ移行した際にいくつか設定でハマったので、そのことについて書いていきたいと思います。 背景 メドピアではterraformでAWSのインフラを管理しています。 terraformのリポジトリでは、レビューがスムーズに行えるようにGitHub Actions上で terraform plan や terraform apply 、 terraform fmt 等を実行できる hashicorp/terraform-github-actions を利用し、下の画像のようにplan結果をPRに自動で投稿するようにしていました。 新サービスをリリースし
PackerBuild and manage images as code
PackerBuild and manage images as code
[速報」Terraformのインフラ定義から自動的にクラウドの費用を見積もる「Cost Estimation」機能登場。HashiConf '19 HashiCorpは米サンフランシスコで開催中のイベント「HashiConf '19」で、Terraformのインフラ定義から自動的にクラウドの月額費用などを見積もる「Cost Estimation」機能をTerraform CloudとTerraform Enterpriseに追加したことを発表しました。 この機能によって、Terraformでクラウドインフラの状態を実際に変更する前に、定義ファイルの内容からTerraformが自動的に変更後にかかるクラウドの月額費用などを見積もりを表示。 利用者はクラウドインフラの状態を変更した場合の費用にかかる影響などを事前に予測することができ、適切なクラウド利用を支援してくれます。 Cost Estim
[速報]HashiCorpが「Terraform Cloud」機能強化、5人まで無料。チームでのクラウドインフラの管理を容易に。HashiConf '19 HashiCorpが主催する年次イベント「HashiConf '19」が9月10日(現地時間)サンフランシスコで開幕しました。 基調講演で同社共同創業者兼Co-CTOのArmon Dadgar氏は、マルチクラウドに対応するクラウドインフラのプロビジョニングツール「Terraform」のクラウド版「Terraform Cloud」の機能強化を発表しました。 Terraformは、AWSやMicrosoft Azure、VMwareなどさまざまなクラウドインフラのプロビジョニング情報を特定のインフラベンダに依存しない形式で、コードとして記述し適用できる、いわゆる「Infrastructure as Code」(IaC)を実現する代表的なソフ
はじめにこんにちは、TIG DXユニット 1の木村です。 入社以降ずっと触ってきたTerraformですが、巷ではWorkspace派だったり、module派だったり、ディレクトリ完全分離派だったり、様々な流派(プラクティス)が乱立しているのを目にします。私自身ベストな構成を模索していく中で辿り着いた結論は、ケースバイケースで全てのデザインパターンに対応できる万能なものは存在しないのかな (当たり障りないですね..)ということです。 そんなわけで、様々なTerraformの流派を紹介し、各流派がどのようなパターンに向いているのか(はたまた不向きなのか)の個人的見解をまとめてみました。 ※本記事中のサンプルコードはすべて Terraform 0.12、 provider google cloud で解説してます Terraformとは?当社過去記事に解説があります。Terraformの概要や
SpotifyがミスによりKubernetesの本番クラスタを二度も削除。しかし顧客へのサービスにほとんど影響しなかったのはなぜか? 今年、2019年5月20日から3日間にわたりスペイン バルセロナで開催されたKubeCon+CloudNativeCon Europe 2019の基調講演では、SpotifyがミスによってKubernetesのクラスタを消去してしまった経験を振り返るという非常に興味深いセッション「Keynote: How Spotify Accidentally Deleted All its Kube Clusters with No User Impact - David Xia」(基調講演:SpotifyはいかにしてKubernetesクラスタの全削除というミスにもかかわらず顧客への影響を引き起こさなかったのか?)が行われました。 障害が起こることをあらかじめ計画とし
既存のAWS環境をエクスポートしてTerraformにまとめたい。 そんなことありませんか。 既存のAWS環境を元にtfファイルとtfstateファイルを出力してくれるterraformerというツールが最近出ました。 GoogleCloudPlatformが中心となって開発しており、GCPのみならず、既存のAWS、GitHub、Datadog、GitHub、Kubernetesの環境にも対応しています。 インストール方法 macOSでは、homebrew経由でのインストールが既に可能です。 また、goで書かれているので直接ビルドすることも可能です。 下記にビルドする方法を記載しておきます。 $ git clone https://github.com/GoogleCloudPlatform/terraformer.git $ GO111MODULE=on go mod vendor $
こんにちは佐伯です。本日待望のTerraform 0.12がリリースされました! Announcing Terraform 0.12 ということで、アップグレードガイドに沿ってTerraform 0.11からアップグレードしてみました。 アップグレードガイド はじめに、アップグレードガイドは以下リンクです。アップグレードする前に読みましょう。 Upgrading to Terraform 0.12 - Terraform by HashiCorp アップグレードプロセス アップグレードの流れとしては以下の通りです。 Terraform 0.11.14へアップグレード アップグレード前チェックリストの実行 Terraform 0.12へのアップグレード Terraformコードの修正 モジュールのアップグレード 事前準備 Terraform stateファイルのバックアップ Terrafor
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く