Linux活用レシピ > AWS活用 > RaspberryPiにTerraformを入れてAWSを自動制御する方法
RaspberryPiに、TerraformをインストールしてAWSを自動制御する「Infrastructure as Code」を実現するレシピを紹介します。

RaspberryPiにTerraformを入れてAWSを自動制御


Terraformの準備について

    ここでの準備はTerraformを動作させるRaspberryPiへのTerraformのインストールおよび、AWSを自動操作するのに必要なAWS CLIのインストールになります。


手順

  1. まずは、ポケットコンピュータRaspberryPiを、専用OS「Raspbian」がインストールされたSDカードから起動したところから始めます。


    RaspberryPiや専用OS「Raspbian」の準備方法は「格安の事務用パソコン」のレシピで紹介しておりますので、こちらを参考にしてください。


  2. まずは、以下の通りデスクトップ画面の左上のアイコンからターミナルを起動します。

    ターミナルが以下のように起動しますので、ここからインストールを行っていきます。
    pi@raspberrypi:~ $ 

  3. Terraformのダウンロード

    以下のサイトから目的のバージョンに合ったTerraformをダウンロードします。
    https://releases.hashicorp.com/terraform/
    RaspberryPiはARMプロセッサを搭載していますので、
    「terraform_<バージョン>_linux_arm.zip」
    という「arm」というファイル名がついたものを選んでください。

    目的のファイルが決まれば、以下のコマンドでダウンロードしたいファイルのURLを指定して実行してください。
    pi@raspberrypi:~ $ wget \
    https://releases.hashicorp.com/terraform/0.13.5/terraform_0.13.5_linux_arm.zip 
    


  4. Terraformの配置と確認

    ダウンロードしたファイルを解凍し、配置します。
    pi@raspberrypi:~ $ unzip terraform_0.13.5_linux_arm.zip
    pi@raspberrypi:~ $ sudo cp -i terraform /usr/local/bin
    


    動作するかコマンドを入力してバージョンを確認します。
    pi@raspberrypi:~ $ terraform -version
    Terraform v0.13.5
    





  5. AWS CLIをインストールします。

    最新のパッケージリストに更新します。
    pi@raspberrypi:~ $ sudo apt-get update


    AWS CLIをインストールします。
    pi@raspberrypi:~ $ sudo apt install awscli

    以下の通り関連モジュールのインストール要求が出ますので、[y]を入力して[ENTER]を入力してください。
    パッケージリストを読み込んでいます... 完了
    依存関係ツリーを作成しています
    状態情報を読み取っています... 完了
    以下の追加パッケージがインストールされます:
      python3-botocore python3-jmespath python3-pyasn1 python3-rsa
      python3-s3transfer python3-yaml
    以下のパッケージが新たにインストールされます:
      awscli python3-botocore python3-jmespath python3-pyasn1 python3-rsa
      python3-s3transfer python3-yaml
    アップグレード: 0 個、新規インストール: 7 個、削除: 0 個、保留: 298 個。
    3,276 kB のアーカイブを取得する必要があります。
    この操作後に追加で 40.7 MB のディスク容量が消費されます。
    続行しますか? [Y/n] Y[ENTER]
    


  6. AWS CLIの更新を行います。
    pi@raspberrypi:~ $ sudo pip3 install awscli --upgrade

    更新ができれば以下のコマンドでバージョンが確認できます。
    pi@raspberrypi:~ $ aws --version

    aws-cli/1.18.169 Python/3.7.3 Linux/4.19.97-v7+ botocore/1.19.9
    



  7. AWS CLIの設定を行います。

    awscliの設定を以下のコマンドで実施します。
    pi@raspberrypi:~ $ aws configure
    まず、以下の入力メッセージが出ますので、ここにAWSでAIMユーザを作成した際に取得した「アクセスキーID」を入力します。
    AWS Access Key ID [None]:xxxxxxxxxx
    
    続いて、以下の入力メッセージが出ますので、ここにAWSでAIMユーザを作成した際に取得した「シークレットアクセスキー」を入力します。
    AWS Secret Access Key [None]:xxxxxxxxxx
    
    続いて、デフォルトのリージョン入力します。
    Default region name [None]:us-west-2
    
    ※「us-west-2」はオレゴンになります。AWSのリージョン一覧はこちらになります。
    https://docs.aws.amazon.com/general/latest/gr/rande.html#emr_region

    最後に、コマンド出力結果の表示形式を指定します。
    Default output format [None]:json
    
    ※ json、table、textの3種類から選択してください。

    以上でawscliの設定は完了です。

    設定が終わると「~/.aws」ディレクトリに認証ファイル(credentials)と設定ファイル(config)が作成されています。
    ※ この設定ファイルは絶対に漏洩させないよう注意してください。万一漏洩すると他人にAWSを勝手に使われ、高額な請求が来る可能性があります。




    次は実際にTerraformのコードを使ってAWSの自動制御を行ってみます。