AWSのGitLabホスティングをTerraform化してみた

この記事は『CRESCO Advent Calendar 2021』 22日目の記事です。

『CRESCO Advent Calendar 2021』 1日目の記事でAWSをGitLabでホスティングしましたが、
色々手順があって面倒だったので、Terraform化してみました。
(cloud9のUbuntuプラットフォームでの構築は対応されてなかったので、1日目の記事を見て構築してみてください。)
手順は以下です。
1.Terraform実行環境を作成します。
2.Terraformのセットアップをします。
3.Terraformでリソースを作成します。

それでは、やってみましょう!

1.Terraform実行環境を作成します。

1-1.Cloud9サービスコンソールから[Create environment]をクリックします。

 

1-2.NameにCloud9環境の名前を入力して、(今回はterraform-sandboxとしています)[Next step]をクリックします。

 

1-3.Configure Settingは何も変えずに[Next step]をクリックします。

 

1-4.内容を確認したら[Create environment]をクリックします。

 

2.Terraformのセットアップをします。

2-1.ターミナルで、下記コマンドを実行してTerraformのバージョンを確認します。

※Cloud9はデフォルトでTerraformの最新バージョンがインストールされています。

 

2-2.環境変数として、IAMユーザのアクセスキーとシークレットアクセスキーを登録する。

 

※IAMのアクセスキーとシークレットアクセスキーは、IAMユーザのサービスコンソールから発行してください。

あと、取扱にはご注意ください。

 

2-3.Terraformの状態管理をするファイルの保存先としてS3を作成します。S3のサービスコンソールから[バケットを作成]をクリックします。

 

2-4.バケット名に名前を入力し、(今回はnissy-terraform-bucketとします)AWSリージョンを選択します(今回は東京リージョンとします)。

 

2-5.バケットのバージョニングは[有効にする]を選択します。

2-6.デフォルトの暗号化は[有効にする]を選択し、暗号化キータイプは[Amazon S3キー]を選択します。

2-7.2-4~2-6までの設定が出来たら、[バケットを作成]をクリックします。

 

2-8.下記のような緑の画面が出てきたら完了です。

 

2-9.下記ファイルをCloud9に作成する。

 

2-10.main.tfファイルのあるディレクトリで下記コマンドを実行する。

※[Terraform has been successfully initialized!]のレスポンスがあれば実行成功です。

 

3.Terraformでリソースを作成します。

3-1.事前に踏み台用のCloud9を作成した上で、下記ファイルを作成しIPアドレスを踏み台用Cloud9のものに書き換えます。

※踏み台用Cloud9の作成方法は『CRESCO Advent Calendar 2021』 1日目の記事を確認してください。

秘密鍵ファイルの作成コードはこちらを引用しました。ありがとうございます!!!

 

3-2.下記コマンドを実行しデプロイするリソースを確認します。

 

3-3.下記コマンドを実行したら[yes]をタイプしてリソースのデプロイを実行します。

 

ここまで出来たら、『CRESCO Advent Calendar 2021』 1日目の記事を見ながら踏み台サーバ経由でGitLabインストールを実施してください。なお、.pemファイルはTerraformを実行したCloud9のフォルダに保管されています。

 

ここまで作ってみると、意外と.pemファイルの作成に悩みました・・・。また、Terraformで対応しきってないリソースなども分かってとても勉強になりました。

とは言え、Terraformはどんどんバージョンアップを重ねているので、これからが楽しみです!

最後までお付き合いありがとうございました!!!

 

  • このエントリーをはてなブックマークに追加