LoginSignup
4
0

More than 1 year has passed since last update.

Linodeのサーバー環境をTerraformで用意する

Last updated at Posted at 2022-08-09

Linodeとは

Linode (https://www.linode.com/) は Akamaiが提供するIaaS (Infrastructure as a Service) プラットフォームプロバイダーのサービスです。リノードと発音します。
Akamaiは2022年2月にLinode社の買収を発表しました。
https://www.akamai.com/ja/newsroom/press-release/akamai-to-acquire-linode
クラウドコンピューティングをよりシンプルに、手頃な価格で、誰もが利用できるようにすることで、イノベーションを加速することができます。
https://www.linode.com/ja/alternative-cloud-provider/

LinodeのTerraform対応

LinodeはほぼすべてのリソースがTerraformに対応しています。
サーバーやディスク、ロードバランサーなどの構成をTerraform化することにより、再現性のある素早い構築が可能となります。

対応しているリソースに関しては以下に情報があります。

Linode Terraformのサンプルコードを紹介

今回はLinodeでTerraformを構築する際の参考となるコードを4つご紹介します。

  1. Webサーバー(Nginx)の冗長構成
  2. WordPressサーバーのシングル構成
  3. WordPressサーバーとマネージドDBの構成
  4. Kubernetesの構成

Webサーバー(Nginx)の冗長構成

Webサーバー(Nginx)の冗長構成のサンプルコードとなります。

  • Linodeで2台のサーバーを起動し、Nginxをインストール。
  • NodeBalancerを作成し、2台のサーバーを紐付ける。
  • DNSを作成し、NodeBalancerのIPとドメインを紐付ける。

Terraformサンプルコード
https://github.com/isss802/linode-terraform-demo/tree/main/web-server

image.png

WordPressサーバーのシングル構成

WordPressサーバーのシングル構成のサンプルコードとなります。

  • Linodeでサーバーを1台起動
  • StackScriptを使用してWordPressをインストール

StackScriptとは、サーバーの起動時に読み込ませることができる独自のスクリプトになります。
スクリプトはbashやPythonで記載することができるため、自由自在なテンプレートスクリプトが作成可能です。

Terraformサンプルコード
https://github.com/isss802/linode-terraform-demo/tree/main/wordpress-single

StackScriptサンプルコード
※コードを確認するためにはLinodeのアカウントが必要となります。
https://cloud.linode.com/stackscripts/996728

image.png

WordPressサーバーとマネージドDBの構成

WordPressサーバーとマネージドDBの構成のサンプルコードとなります。

  • Linodeでサーバーを1台起動
  • マネージドデータベースをMySQLで起動
  • StackScriptを使用してWordPressをインストール、参照先DBはマネージドDB

Terraformサンプルコード
https://github.com/isss802/linode-terraform-demo/tree/main/wordpress-managed-db

StackScriptサンプルコード
※コードを確認するためにはLinodeのアカウントが必要となります。
https://cloud.linode.com/stackscripts/996727

image.png

Kubernetesの構成

Kubernetesの構成のサンプルコードとなります。

  • Linode LKE Clusterを構築する
  • Nodeを2台構築する

構築後はkubectl等を利用してアクセスすることが可能です。

export KUBE_VAR=`terraform output -raw kubeconfig` && echo $KUBE_VAR | base64 -d > lke-cluster-config.yaml
export KUBECONFIG=lke-cluster-config.yaml
kubectl config get-contexts
kubectl get nodes

Terraformサンプルコード
https://github.com/isss802/linode-terraform-demo/tree/main/linode-kubernetes-engine

image.png

まとめ

今回は4つの構成についてTerraformのコードをご紹介しました。
Linodeでは様々なリソースをTerraformでコード化することができます。
ぜひ今回のコードを参考に、Terraformによるコード化を進めてみてはいかがでしょうか。

関連記事

アカマイ・テクノロジーズ合同会社のQiitaではLinode関連など開発者向けの記事を記載しております。

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0