TerraformでVPCを作成・削除してみた
Terraformを使ってAWSのVPCとサブネットを作成し、削除まで一連の流れを試してみましたので、やり方を後から追えるように記事として残します。
0. 前提
今回の操作では、AWSとTerraformを使用します。 環境設定方法は前回記事を参照してください。
1. Terraformの設定ファイルを作成
main.tfには、AWS ProviderとVPC、サブネットを定義しました。
Terraformを使ってAWSのVPCとサブネットを作成し、削除まで一連の流れを試してみましたので、やり方を後から追えるように記事として残します。
今回の操作では、AWSとTerraformを使用します。 環境設定方法は前回記事を参照してください。
main.tfには、AWS ProviderとVPC、サブネットを定義しました。
Terraformを使ってAWSのS3バケットを作成し、設定変更から削除まで一連の流れを試してみましたので、やり方を後から追えるようにコマンドなどを記事として残します。
今回の操作では、TerraformとAWS CLIを使用します。
事前にそれぞれインストールしておきます。
最近、マイクロサービスという言葉をよく見かけます。
マイクロサービスとは、従来だと単一でシステム化していた業務を区分ごとに小さなサービスに分割する考え方の枠組みです。
社内システムのアーキテクチャに組み込んで再設計してみても面白いと思ったので調べてみました。
従来型の複数機能を単一アプリケーションにまとめた構成を『モノリス』と呼びます。
例えば、ファイルを共有するシステムがあるとします。
このシステムには下記のような機能があります。
従来通り、AWS構築作業を手順書通りに手打ち…だと面倒なのとミスが出るリスクがある為、これを自動化したい。
IaCと呼ばれる手法があり、その中でも代表的なツールにテラフォームがある。このテラフォームはAWSのみではなく、他環境でも流用可能なため今回軽く触れてみた。
よくあるコマンド手打ちを自動化する.shという拡張子があるが、これと合わせて.tfなどのテラフォーム用の拡張子がある。
とりあえず何者なのかを整理してみた。
前回では、.installファイルを使用してテーブルを作成する方法について確認しました。
今回は最終回として、カスタムモジュールの処理をPHPUnitテストというもので試験してみます。
PHPUnitテストを使えば、単体試験をソースコード化することで自動化および再試験の簡略化が出来ます。
Drupalだと固有のUnitTestCaseを継承してテストクラスを作成できます。
final class Issue5MailTest extends UnitTestCase {
今回は、イベントの出欠回答時に通知送信するメールを例にします。
前回では、フォームから入力された内容をDBに保存するところまで追いました。
その際に保存先のテーブルは作成済みとしていましたが、今回はそのテーブルをDrupalでどのように作成しているかを確認していきます。
今回作成するのは.installファイルになります。
まず.installってなんなのかですが、Drupalのカスタムモジュールでインストールや更新時の処理を書くためのDrupal固有のファイルです。
拡張子は.installですが、中身はPHPで書きます。
PHP自体に.installという仕組みがあるわけではなく、Drupal側がこのファイルをPHPとして読み込んでいます。
前回でフォームを作成しました。しかし、入力内容がどのような流れでDBに保存されていくかを追えてなかったので、今回はそれを追って行こうかと思います。
前提として、フォームと保存先のテーブルは作成済みとします。テーブルの作成方法については次回の記事で取り扱います。※.install使用
前回にシステムの入り口として用意したフォームから出欠するしないというデータが送られてきます。もちろん各ユーザが入力します。
仮に出席しますといったデータが流れてきた場合は、出席扱いで名前などとセットでINSERTされます。
先ずフォームってなんなのかですが、具体的には下記のようなテキストを入力・選択して送信するための画面部品のことを指す用語です。
PHPにフォーム定義をしていきます。
Drupalでフォームを定義する際にはHTMLではなく、PHPの配列で定義します。理由はDrupalのForm APIで纏めて管理しており、HTML部分については既にコアとして定義済みだからです。
今回はDrupalのフック関数について解説します。
前回のフォルダ構成で触れた「横から割り込めるフック処理を入れるmarucha.module以外については必須です。」という部分についての深掘りになります。
今回は例としてDrupalに元々存在する検索フォームを置き換えます。 通常の送信ボタンではなく、Marucha検索という表示に変更できます。
とりあえず先ずはフック関数がどういう実装になるかですが、下記のようにmarucha_form_alterという感じでモジュール名を入れる必要があります。
hook_form_alter()が元々の形で、Drupalのコア機能が用意しているものになります。
これから数回に分けてDrupalカスタムモジュール作成方法についての社員ブログを書いていこうかと思います。
先ずは、最初の一歩として大雑把にでもアーキテクチャの勉強から入っていこうかと思います。
それでは一般的なフォルダ構成です。