You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
Terraformで考えるマルチリージョン構成Terraform、もといIaCのメリット、思想として謳われるものの中には可搬性、再利用性があります。再利用性を上げておくことで、同じ構成のインフラ、サービス群を一括して作成でき、手作業と比べた時の再現性、信頼度が大きくなることはいうまでもありません。 具体、業務を前提としたITインフラ環境を考えたときに、社会インフラとして稼働しているサービスや、どんな状況であろうとも24時間365日稼働していないといけないサービス、企業があります。このような企業では災害対策環境として、地理的に大きく離れたエリアにDCを構えることで、ある1点で甚大な災害が発生してサービス断になったとしても、別のDCで継続することが可能になります(もちろん一定時間のサービス断は発生しますが、数日、数ヶ月単位になることはほぼないでしょう)。 この災害対策環境(この後はDR環境と記
PackerBuild and manage images as code
HashiCorpは2023年8月10日(米国時間)、Terraformをはじめとした同社の製品のライセンスを 「Mozilla Public License v2.0(MPL 2.0)」 から「Business Source License v1.1(以下、BSL)」に移行すると発表した。BSLは定義上オープンソースソフトウェアライセンスではない。このため、「オープンソース版」あるいは「OSS版」と呼ばれていたものは「コミュニティー版」と名称が変わった。 HashiCorpはさまざまな専門家やステークホルダーとの協議の上で、今回のライセンス変更に至ったという。 BSLはMariaDBが公開したライセンスモデルで、他にもCouchbaseやCockroach Labsなどが採用している。その内容は多くの点で、 Open Source Initiativeによるオープンソースソフトウェアの定
はじめに こんにちは!Hamee株式会社の tatsuo48 です。 Terraformの自動化ツールであるAtlantisについて書きます。 主に以下の事項について書きます。 Atlantisとは何か? 基本的な使い方、運用TIPS 逆に以下については触れません Atlantisの内部仕様 Atlantisの構築方法 Installation Guideをご確認下さい GitHubAppをつかったやり方[1]がおすすめです。 Atlantisとは何か? AtlantisとはTerraformの操作(planやapply)をPRのコメントベースで実行可能にしてくれるツールです。 公式のTOP画像がわかりやすいのでそれを見ながら説明します。 PRを作成 Terrformのリソースを変更するようなPRを作成! terraform planを自動実行 webhookなどを使ってPRが作成されたこ
Sign up for freeGet started in minutes with our cloud products TerraformInfrastructure as code provisioning
Terraformを学び始めた頃、最初は同じディレクトリにすべてのtfファイルを置いて、Resourceブロックの書き方を中心に学び、作っては簡単に削除できる"全能感"がとても楽しかったのを覚えています。 でも、しばらくするとDRYに書きたくなって、Moduleという機能を知りました。 プログラミングでいうところの関数(Function)のようなものですね。 今でこそModuleをある程度読み書きできるようになりましたが、昔はプログラミングの関数のようなものだ、という例えも知らずイメージが全く掴めませんでしたし、DRYに書きたいのに変数や出力の記述が冗長になってしまったりして、使いこなすのが難しいイメージをずっと持っていました。 Moduleを使いこなすには、ディレクトリ構造とか、モジュール化の粒度など、設計の要素も大切なのですが、そういった話はいったん置いておいて、Moduleに変数を渡
0.この記事の結論#pcasteran/terraform-graph-beautifier: Terraform graph beautifier が個人的にはおすすめ!やはり、Terraform にビルトインされた terraform graph を input 値としているせいか、安定している印象を受けた。 im2nguyen/rover: Interactive Terraform visualization. State and configuration explorer. もとくにビジュアル面でよかった。ただし、Docker で扱う場合、Docker ホスト側の Terraform のバージョンによってはうまく動かないことがあったので、2番目におすすめとしたい。 1.この記事を書こうと思った背景#terraform graph という Terraform のリソース可視化ツー
PackerBuild and manage images as code
本日は、Terraformを使っていて、tfstateと実際のリソースに差分が生じてしまった際の修正方法を紹介します。 稼働中で作り直しができないリソースなので、tfstateに手動で変更した状態を取り込むことにしました。 起きたことと、解決までの流れは以下のようになります。 terraform plan を実行すると予期せぬ差分(.tf に記述していない)が発生Manegement Consoleと .tf ファイルを比較し、terraformで管理するリソースに手動で変更が加わっていることを特定Management Console側のリソースを、 terraform import で tfstate に反映させるtfstateに合わせて、.tfファイルの記述を修正terraform plan を実行し、Management Console と差分がなくなったことを確認tfstateとは
【レポート】Amazon ECSとKafka Streamsを活用した低コストで高機能なストリーミングアプリケーションの構築 #AWSSummit DA事業本部の春田です。 AWS Summit Online絶賛開催中!ということで、本記事では「CUS-47: Building Semi-Realtime Processing System with Kafka and Kafka Streams on Amazon ECS」の内容についてまとめていきます。 セッション情報 Repro 株式会社 CTO 橋立 友宏 氏 より短かいスパンでより大規模な情報を分析可能にすることが求められる現代のデータ基盤を実現するため、Amazon ECS と Kafka Streams フレームワークを活用して低コストで高機能なストリーミングアプリケーションを構築するノウハウについて解説します。 ※セッショ
$ terraform import google_project_iam_member.default "my-project roles/viewer user:foo@example.com" さらに、その後は .tf と import 後の .tfstate の差分を無くすためにドキュメント等を確認しながら .tf を更新していく必要がありました。 しかし、v1.5.0 以降のバージョンでは、少々手間に感じていた上記の作業を効率化することができるようになりました。 それが、本記事のテーマとなっている import ブロック & HCL コードの自動生成オプション となります。 検証環境 IaC Tool Terraform v1.6.0 Google Provider v4.56.0 Infrastructure Google Cloud 使用方法 それでは、import ブロック
こんにちは、チェシャ猫です。先日行われた Cloud Operator Days Tokyo 2020 で、Infrastructure as Code のテストについて発表してきました。公募 CFP 枠です。 Cloud Operator Days Tokyo 2020 は今回が初開催のイベントですが、昨年 CloudNative Days Tokyo と併設されていた OpenStack Days Tokyo が前身となっているようです。 ASCII.jp:ふれあえるオンラインイベント「Cloud Operator Days Tokyo 2020」は泥臭い? 今年は OpenStack に限らず広く運用がテーマにされていますが、セッションのラインナップを見る限り、他のイベントよりもオンプレミス・エンタープライズ的な色が強く出ているように感じられます。 ちなみに、チェシャ猫の発表は事前ア
April 30, 2024OpenTofu 1.7.0 is out with State Encryption, Dynamic Provider-Defined Functions, and more In the last few months since our first stable release the OpenTofu community and the core team have worked hand in hand to bring functionality to OpenTofu that has been requested for years. We are proud to announce the immediate availability of OpenTofu 1.7.0, bringing you the following highligh
2024/4/10にGAになったTerraformのVersion1.8にて、Providerが関数を定義できるようになりました。各Providerの開発者はそのProvider固有の問題解決に特化した関数を作成できるようになりました。 本エントリでは新関数たちを触ってみてレポートします。 Providerって? Terraformをあまりご存じない方向けに説明すると、ProviderはTerraformのプラグインです。実はTerraform単体ではAWSのリソースなどをプロビジョニングすることはできません。AWSリソースをプロビジョニングしたい場合はAWS provider、Google Cloudのリソースをプロビジョニングしたい場合はGoogle Cloud providerなどといったように、対応するproviderと組み合わせてTerraformを使うことではじめてリソースをプ
1. テスト用の一時的なリソース作成の有無 Testsはテスト実行時に、テスト用のリソースを一時的に作成することができます。 上記の何が嬉しいかというと、直接リソースを作成しない(※)モジュールでテストが行いやすいです。 tfファイルを直接みる静的解析に比べて、ApplyやPlanを伴うテストの方が得られる情報は多いため踏み込んだテストができます。 呼び出し側でテストをする場合、関連するリソースの数が多く1回あたりの実行に時間がかかります。 全体に比べて作成するリソース数が少ないため、Testsはモジュール単位でテストを行うことに適しています。 ※ディレクトリで直接terraform applyを行わない。他tfファイルから呼び出して、リソースを作成する。 2. ライフサイクルの外側でのチェックの有無 Terraformの設定ファイルだけでは、ステータスがわからない項目もあります。 例えば
はじめに 2021/5/27 Amazon Elastic Container Service Anywhereが一般利用開始になりました🎉 オンプレミス環境で AWS のサービスを使用してコンテナをデプロイするオプションとして、これまでも AWS Outposts 上で Amazon ECS を利用するという選択肢はありましたが、気軽に導入できるものではありませんでした。Amazon ECS Anywhere はユーザーが所有する任意のインフラ環境で、ECS のコントロールプレーンを利用して簡単にコンテナを実行することができる機能です。 詳細な利用手順は他の記事に譲るとして、ECS Anywhere がどのような仕組みで動いているのかや他クラウドの類似サービスと比較したときの違いなどについて書いていきたいと思います。 2022/4/21 時点で確認できた情報で記載しています。 ざっくり
Terraform 1.0が先程発表されました。つまりGA(Generally Available)です。 何が変わったの? 特に変更点はありません。 CHANGELOGに以下記載があります。 Terraform v1.0.0 intentionally has no significant changes compared to Terraform v0.15.5. You can consider the v1.0 series as a direct continuation of the v0.15 series; we do not intend to issue any further releases in the v0.15 series, because all of the v1.0 releases will be only minor updates to addr
カナリアリリースに関連のある部分を図に起こしたものが以下です。 ECSクラスターの中にあるサービスに対してターゲットグループを設定し、ALBからのリクエストをタスクに割り振っています。 デプロイはGitHub ActionsのWorkflow Dispatchを使用し、ボタン押下で実行できます。このプロセスはDockerイメージをビルド、Amazon Elastic Container Registry(以下、Amazon ECRと表記)にイメージをプッシュし、Amazon ECSのタスク定義を更新すると自動的にタスクのローリングアップデートが走る仕組みを使用しています。 余談ですが、クーポンサービスでは以前Spring Boot 2.6を採用していました。 Spring Bootの3系へのアップグレードについては記事「出前館クーポンサービスでのサーバーアプリケーションのSpring Bo
LAPRAS株式会社でSREをしております yktakaha4 と申します 🐧 今回は、仕事のひとつとして1年くらい取り組んでいたEKSクラスタのバージョンアップの運用改善について一息つけたので、振り返りを兼ねて備忘録を遺したいと思います ✍ 先にお断りしておくと、この記事で話すのは 運用ノウハウが{ほぼ無い,失われてしまった}EKSクラスタに対して、手順改善やリファクタリングを通じて継続的なバージョンアップ運用を再開する方法 というあまり胸を張れない内容です ネットの記事やカンファレンスを見ていると、大規模環境や高トラフィック下における取り組みや、初期構築の段階で充分な運用設計を済ませている素晴らしい事例などが目に留まります 一方で、過去に選定したk8sを破棄して元の技術スタックに戻す意思決定をしたプロジェクトについて見かけることもあります 各社においても様々なコンテキストがあるものと
※この投稿は米国時間 2020 年 11 月 25 日に、Google Cloud blog に投稿されたものの抄訳です。 今年、Google Cloud は Cloud Run に対するクラウド ロードバランサのサポートを発表しました。Cloud Run サービスはすでに負荷分散されているのではないかと思われるかもしれません。たしかに、各 *.run.app エンドポイントは、コンテナの自動スケーリング セット間でトラフィックを負荷分散しています。しかし、今回はそれに加えて、サーバーレス プラットフォーム向けのクラウド バランシングの統合により、ネットワーク スタックの下位レベルを微調整できるようになりました。今回の記事では、このタイプのセットアップのユースケースを説明し、Terraform を使用して Cloud Run 用に HTTPS ロードバランサをゼロから構築します。 Clou
初めまして。あけましておめでとうございます。 DSOC R&D アーキテクトの鈴木賢志です。 Sansan Labs*1 では、新しい働き方の実現を目指し実験的な機能を一部公開しています。私は普段、それらの開発を中心に、R&D から生まれるサービスの品質改善などに取り組んでいます。 今回は、Sansan Labs で活用している Terraform のディレクトリ構成と、どのような理由でこの形になっていったかを紹介したいと思います。 Terraformのディレクトリ構成 Sansan Labs ではクラウドに AWS をメインで使用しており、昨年からインフラ構成管理のツールとして Terraform の利用を始めました。 初めて Terraform を使い始めた時に、最も悩んだのが .tf ファイルやディレクトリをどのように分けるか、という点でした。 これに対し色々考えた結果*2、以下のよ
こんにちは。データ・AI戦略部 SREチームの小野です。 2020年8月に中途で入社し、管理画面やAPIの開発、インフラ構築、サービス改善などに携わってきました。 SRE(Site Reliablity Engineering)チームでは、サービスやプロダクトの信頼性の向上を図るために、業務プロセスの改善に日々取り組んでいます。システム運用の自動化・効率化も職務の一つで、最近は特に「インフラ構築・運用の改善」に力を入れています。 弊社では、お客様の嗜好に合わせた「食」の情報を「ぐるなび」サイトなどのサービスからお届けしており、これらのサービスは、クラウドやオンプレといったインフラ環境で動いています。言い換えれば、「インフラ環境がなければ、サービスをお届けすることができない」ということになります。そのため、インフラ構築・運用の改善は、サービスの品質やお客様満足度を向上させるものであり、SRE
Amazon Web Services ブログ Amazon Elastic Container Service 入門ハンズオンを公開しました!– AWS Hands-on for Beginners Update こんにちは!ソリューションアーキテクトの杉山(@sugimount)です。6月になって暖かな日が増えておりますが、皆さまいかがお過ごしでしょうか。家で猫を飼っているのですが、私に猫アレルギーがあることがわかりました。どうりで、鼻がムズムズするわけです。 さて、この度 AWS Hands-on for Beginners シリーズの新作コンテンツとして、Amazon Elastic Container Service (Amazon ECS) を使った入門ハンズオンを公開しました。今回公開したハンズオンを紹介いたします。 AWS Hands-on for Beginners とは
EKSをTerraformでプロビジョニングされている方は、一度 terraform-aws-eks-blueprints リポジトリを覗いてみることをおすすめします!今回言いたいのはこれだけです。 aws-ia/terraform-aws-eks-blueprints: Configure and deploy complete EKS clusters. EKS Blueprintsとは 一言で言えばEKSの実装例集です。 aws-ia(AWS Integration and Automation)というAWSのGitHubアカウントがホストしているリポジトリです。 EKS自体のIaC、またそのEKSクラスターの上に様々なツールをインストールするIaCはなかなかに複雑で、KubernetesやAWS、さらにはそのツールについての理解が必要です。私はいつもどのレイヤ(Kubernetes
はじめに 最近触り始めたTerraform CLI。Terraformコマンドを実行する権限は、AWS CLIと同じく.aws/credentials、.aws/configを利用することができますが、MFA認証を使ったAssumeRoleを使う場合は、ひと手間が必要です。 MFA認証はエラーとなる IAMを利用している方は、ユーザーおよびパスワードだけじゃなくMFAを必須とするポリシーで運用されている方が多いと思います。また、環境分離でAWSアカウント間はスイッチロールする運用されている場合、aws:MultiFactorAuthPresentをtrueとするように設定している方も多いかと思います。Terraform CLIでも同じくMFAを必須とするよう、credentials、configにmfa_serialが指定されたprofileを指定して実行すると以下のエラーが発生します。
この記事はterraformアドベントカレンダー 2021 10日目の記事です。 会社等でgithubを使っている方の多くは Organization を作って各リポジトリへのアクセス権を管理していると思います。 ところで以下のような出来事に心当たりはありませんか? 新しく組織に参加したメンバーが毎日のように「リポジトリにアクセスできないんですが・・・」と言ってきて 足りない権限を逐一手動追加させられる 久々にリポジトリのアクセス権を確認したら 数ヶ月に退職したはずのアカウントが残ってる たまに志のある人がOrganization内にTeamを作成して権限を整理してくれても、 Team自体がメンテされなくなって意味をなさなくなる (そもそもチームの存在が気付かれなくて使われない等) 個人的には今まで関わってきた多くの組織でこういう経験をしてきました。 ということで、terraformでgi
GitHub ActionsがOIDCプロバイダとして使えるようになりました。 これによりAWSのアクセスキーを埋めることなくロールベースでのアクセスができるようになりました。やったね。 この話自体はなぜか公式リリース前にサンプルコードが出回ったりして、みんなサンプルコードコピペして動いた〜って話題になってたので今さら感があるかもですが、例えばTerraformでaws_iam_openid_connect_providerの設定をするならこんなかんじでしょうか。 resource "aws_iam_openid_connect_provider" "github" { url = "https://token.actions.githubusercontent.com" client_id_list = ["sts.amazonaws.com"] thumbprint_list = ["
ECSの操作を手軽にできないものかと色々試していて、本当に色々なツールが存在するものだと気が付きました。ポイントはいずれも用途が完全には被っていないところです。 コンテナ及びDockerの操作に手慣れた人であれば迷うこともないと思いますが、「試しに触ってみたいけどよくわからない」という人向けにDevIOでの紹介記事を交えてツールをいくつかピックアップしてみました。 aws-cdk 0からインフラを設計するときにはおすすめです。 npx cdk init --language typescript TypeScript版がよく使われるイメージですが、一応Python版もあります。 ある程度AWSの仕組みに慣れていないと、どこから手を付けるべきかわからないかもしれません。そんな時は次のワークショップから始めてみましょう。 ecs-cli ECS操作専用のCLIです。事前知識としてECSの仕組み
Vaultには必要な時に必要な期間だけシークレットを生成する仕組みがあります。この仕組みを「動的シークレット」と呼んでいます。この記事では、Vaultの動的シークレットを用いてTerraformを構成する方法について解説しています。HashiCorpのソリューションエンジニアであるPatrick Schulz氏の記事を、HashiCorp社の許可を得て、翻訳してお届けします。 この記事では、Vaultの動的シークレット機能を使うことで、Terraformのstateファイルに静的シークレット(クラウドにログインするためのクレデンシャルなど)を記述するのを避ける方法について解説します。 図1 動的シークレット生成のワークフロー Terraform(やAnsibleのようなツール)を使ってクラウドにリソースをプロビジョニングする際の課題の1つは、クラウドにログインするためのクレデンシャルの管理
はじめに こんにちは。コンサル部の島川です。 2019年12月頭にECSの新機能であるAWS ECS Cluster Auto Scalingが発表されました。略してCAS。AutoScalingGroupにECS専用ポリシーが紐づけされます。これは同時期にリリースされた「Capacity Provider」と一緒に使う必要があります。ただ...めちゃくちゃ便利そうだという第一印象だけで実際にどういう動きをするのか、何が嬉しいのかという点についてモヤモヤしていた部分があったので実際に手を動かしてみて動きを確かめてみました。 結論からECS on EC2を運用されている方は「Capacity Provider」を有効にしてCASを使うメリットが大きいです。EC2のスケーリングをほとんど考えなくて良くなります! ECS on EC2における今までの課題 今までは EC2のスケーリング Auto
「terraform モジュールのドキュメントを簡単に作成したい」 terrafrom moduleの自動生成に便利な terraform-docs みなさん使っていますか? 今回は、terraform-docsをGithub Actions上で動かして、プルリクエスト時にモジュールのドキュメントを 自動生成してみます。 terraform-docsとは terraform-docsは、 terraformモジュールからREADMEなどドキュメントを生成することができるツールです。 Introduction | terraform-docs コマンド一つで、以下のようにドキュメントを作成してくれます。 $ terraform-docs markdown <モジュールディレクトリ> やってみた 手動で実行するだけでも便利ですが、モジュールを更新した際に自動で実行してくれたらさらに便利そうです
eksctlとは k8sクラスターをeks上に作成するのをサポートしてくれるCLIツールです。コマンド一発で、クラスターだけでなくクラスター作成に必要なVPCやIAMロールなどの周辺リソースもまるっと作成してくれます。 eksctl - The official CLI for Amazon EKS 詳しくは以下のエントリをどうぞ。 terraform-provider-eksctlとは で、そんな便利なeksctlをさらにTerraformでラップしたものがこのterraform-provider-eksctlです。私は現在参画中のプロジェクトにて、クラスター外のリソース(ALBなど)をTerraformでプロビジョニングしています。ですので、クラスター作成部分もTerraform化できるのは何かと都合が良いのではないかと思い、触ってみたいと思いました。 mumoshu/eksctl |
こんにちは、 kotamat です。 少し前から、CDKを用いた環境整備を行いました。今までterraformで構築してきたので、それとの差分をメモ代わりに書こうと思います。 TL; DR使い分けとしては下記のようになるかなと思っています CDKベストプラクティスを簡単に構築したい場合。ビルドプロセスなど、動的にインフラ構成を構築したい場合terraformサービスの基盤となるインフラを構築したい場合同等の環境を、異なるVPCなどで構築したい場合CDKとはAWS クラウド開発キット (AWS CDK) は、使い慣れたプログラミング言語を使用してクラウドアプリケーションリソースをモデル化およびプロビジョニングするためのオープンソースのソフトウェア開発フレームワークです。 https://aws.amazon.com/jp/cdk/ 簡単に言うと、TypeScript、Python、Java、
フィードバックを送信 Terraform、Cloud Build、GitOps を使用してインフラストラクチャをコードとして管理する コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。 このチュートリアルでは、一般的な GitOps 手法を使用して、Terraform と Cloud Build により、Infrastructure as Code を管理する方法について説明します。GitOps という用語は、最初に Weaveworks によって造られました。その主なコンセプトは、Git リポジトリを使用して必要な環境状態を保存することです。Terraform は、コードを使用してクラウド インフラストラクチャを予想どおりに作成、変更、改善できる HashiCorp ツールです。このチュートリアルでは、Google Cloud の継続的インテグレーション サ
はじめに この記事はterraform Advent Calendar 2019の4日目です。 Terraformのstateを分割すると享受できるメリットがある一方、stateを分割することで発生する課題もあります。そこで、Terraformのstateを分割管理する中で考慮したことをまとめます。 stateを分割する影響 メリット plan/applyが高速化する 各ステートの命名がシンプルになる(thisを使った命名がしやすい) 例えばresource "aws_security_group" "this" {} デメリット 管理するファイルが増える 同じような設定が増える どのような単位でstateを分割するか リソースのライフサイクルごとに分割すると運用が楽です。 例えば、作成後削除することのないネットワークやデータベースと、状況により台数が増減したりリソースを入れ替えるWebサ
以下のエントリで紹介されていたTransit GatewayでVPC間通信を行なう構成を、Terraformを使って構築してみました。 Transit Gatewayを利用してVPC間で通信してみた 構成図 ディレクトリ構造 . ├── .terraform-version ├── _main.tf ├── file │ └── trgw-sandbox-local-bastion-keypair.pub ├── modules │ ├── ec2 │ │ └── ec2.tf │ ├── transit-gateway │ │ └── vpc-attachment.tf │ └── vpc │ └── vpc.tf ├── ec2.tf ├── transit-gateway.tf └── vpc.tf ※ 以下を参考にディレクトリ移動だけで一時クレデ
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く