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つご紹介します。
- Webサーバー(Nginx)の冗長構成
- WordPressサーバーのシングル構成
- WordPressサーバーとマネージドDBの構成
- 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
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
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
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
まとめ
今回は4つの構成についてTerraformのコードをご紹介しました。
Linodeでは様々なリソースをTerraformでコード化することができます。
ぜひ今回のコードを参考に、Terraformによるコード化を進めてみてはいかがでしょうか。
関連記事
アカマイ・テクノロジーズ合同会社のQiitaではLinode関連など開発者向けの記事を記載しております。