OSSTech版 OpenLDAPの EC2 Image Builder でのAMI構築方法
2025-08-07 - 鈴木 慶太
OSSTech版 OpenLDAPの EC2 Image Builder でのAMI構築方法
概要
弊社では、OpenLDAPのパッケージ提供は行っておりますが、仮想マシンイメージやDockerイメージでの提供は行っておりません。 今回は、Amazon EC2で利用する際にAMI化した状態でサービスを稼働させるための手順をご紹介します。
前提
OpenLDAPは、ユーザー情報やパスワード等のユーザーデータを書き込むディレクトリサーバーです。
AMIにデータ投入は行わない
AMI作成時にデータを投入していると、起動したタイミングと運用開始後で差分が生じるため、マシンイメージに事前にデータ投入を行うことはできません。 今回作成するAMIでは、LDAPサーバにはデータが投入を行われていない状態で作成します。
AMI起動時の別サーバからのレプリケーション
OpenLDAPは、他LDAPサーバからのデータレプリケーションに対応しています。 特定のOpenLDAPサーバでのみ問題が発生した場合は、該当のOpenLDAPサーバを停止し、データ投入が行われていない状態のイメージを起動しなおし、他サーバに存在している正しい状態のデータを複製して利用してください。(複製は、LDAPサーバ間で自動的に行われます)
OpenLDAPの整合性がとれなくなった場合
稼働中のサーバ全てに問題が生じ、安全と思われるデータが失われた場合、バックアップから手動でデータを投入するようお願いいたします。
OpenLDAPで障害が発生した際、どのサーバのデータが 正しい
または 壊れている
のかは、管理者から確認して操作を行う必要があります。そのため、 AutoScaling
等を利用した自動復旧については考慮しません。
マルチマスター構成に関する注意点
本手順では、マルチマスター構成を前提に、1号機用の設定ファイルと、2号機用の設定ファイルを一つのAMIに配備し、起動時に起動したい号機にあわせた設定ファイルを利用するよう構成します。 OpenLDAPではサーバ間通信が必要となりますが、サーバ間の疎通を取る方法については本文章では考慮していません。
手順
設定ファイル・パッケージ用のバケットの作成
OpenLDAPのAMIを作成する際の、設定ファイルやパッケージを保存するためのS3バケットを作成します。
1. S3 の開始
AWS マネジメントコンソールを開き、画面上部の検索ボックスから、 S3
を選択します。

S3 の画面に移動したら、 バケットの作成
を選択します。

2. バケットの作成
バケットタイプ
は、 汎用
を選択します。
バケット名
は適当な名前を指定します。
オブジェクト所有者
は、ご利用中の環境にあわせて適宜指定してください。

設定ファイルの更新作業時と、EC2 Image BuilderでのAMIビルド時以外でバケットにアクセスする必要はないため、
このバケットのブロックパブリックアクセス設定
では、 パブリックアクセスをすべてブロック
を指定してください。
設定ファイルの切り戻しを可能にするため、 バケットのバージョニング
は、 有効にする
を指定ください。
タグ
は、ご利用中の環境にあわせて適宜指定してください。

デフォルトの暗号化
では、 SSE-S3
を指定してください。
バケットキー
は、 有効にする
を指定ください。

バケットの作成
を押すことで、実際にバケットが作成されます。
3. ファイルの配置
作成されたバケットに、弊社OpenLDAPパッケージと、OpenLDAPサーバの設定ファイルを配置します。



ファイルを追加
を選択し、パッケージと設定ファイルをアップロードします。
必要に応じて設定ファイルは追加ください。

EC2 Image Builder でのパイプラインの作成
1. EC2 Image Builder の開始
AWS マネジメントコンソールを開き、画面上部の検索ボックスから、 EC2 Image Builder
を選択します。

2. イメージパイプラインの作成
EC2 Image Builder
の画面で、 イメージパイプラインの作成
を選択します。

3. パイプラインの名前指定
パイプライン名に適当な名前を指定します。 セキュリティスキャンは必要に応じて実行するよう設定ください。

4. ビルドスケジュール・タグ指定
ご利用中の環境の要件に応じて適宜設定ください。

設定後は、 次へ
を選択します。
5. レシピの設定
新しいレシピを作成する
を選択し、 イメージタイプでは Amazon マシンイメージ (AMI)
を選択します。

レシピの詳細
では、適宜 名前
と バージョン
を指定します。

ベースイメージ
では、 管理対象イメージを選択する
を選び、イメージのオリジンでは Amazon Linux
を選択します。
クイックスタート(Amazon管理)
を選び、イメージ名では、 Amazon Linux 2023
を選択してください。
弊社では、x64版、ARM板を提供しておりますので、 x86
ARM64
のどちらを選択いただいても問題ありません。

インスタンスの設定
、 作業ディレクトリ
は、ご利用の環境にあわせて適宜選択ください。

6. ビルドコンポーネントの作成
コンポーネントで、実際にビルドする内容を指定する、ビルドコンポーネントを作成します。
コンポーネントを作成
を選択します。

コンポーネント名
と コンポーネントバージョン
を適宜指定します。
イメージのオペレーティングシステム (OS)
では Linux
を指定します。
KMS キー – オプション
では、デフォルト値の Image Builder サービスキー(デフォルトで有効)
を指定します。

定義ドキュメント
では、 コンテンツ
の欄に以下のように指定します。

name: OSSTechOpenLDAPBuildDocument
description: OSSTechOpenLDAPBuildDocument
schemaVersion: 1.0
phases:
- name: build
steps:
- name: DownloadFilesFromS3
action: S3Download
inputs:
- source: s3://openldap-imagebuilder-backet/*
destination: /tmp/s3/
- name: InstallOSSTechOpenLDAPPackage
action: ExecuteBash
inputs:
commands:
- cd /tmp/s3/
- sudo dnf install -y tar gzip
- sudo dnf install -y ec2-instance-connect amazon-ssm-agent
- tar zxf osstech-openldap-2.5.20-25.el9.aarch64.tar.gz
- sudo bash osstech-openldap-2.5.20-25.el9.aarch64/install.sh -y
- sudo cp slapd.conf.001 /opt/osstech/etc/openldap/slapd.conf.001
- sudo cp slapd.conf.002 /opt/osstech/etc/openldap/slapd.conf.002
- sudo systemctl enable osstech-slapd
- sudo systemctl enable amazon-ssm-agent
コンポーネントを作成
を選択し、ビルドコンポーネントを作成します。
作成後は、 EC2 Image Builder
の画面に戻り、 ビルドコンポーネント
で ビルドコンポーネントを追加
を選択します。
ユーザー所有
を選択し、先ほど作成したビルドコンポーネントを選択します。

ストレージ(ボリューム)
は、適宜設定ください。(20GB程度で十分です。)

イメージ作成プロセスを定義する
は、 デフォルトワークフロー
を選択します。

インフラストラクチャ設定を定義する - オプション
は、 サービスデフォルトを使用してインフラストラクチャ設定を作成する
を選択します。

ディストリビューション設定を定義する - オプション
は、 サービスデフォルトを使用してインフラストラクチャ設定を作成する
を選択します。

設定が終わったら、 パイプラインを作成する
を押し、ビルドパイプラインを作成します。
7. EC2 Image Builder の実行ロールに対するS3アクセス権限の付与
AWS マネジメントコンソールを開き、画面上部の検索ボックスから、 IAM
を選択します。

EC2 Image Builder
から自動作成された、 EC2InstanceProfileForImageBuilder
を選択します。

許可を追加
を選択し、 ポリシーをアタッチ
を選択します。

AmazonS3ReadOnlyAccess
を追加し、 許可を追加
を選択します。

8. パイプラインの実行
EC2 Image Builder
に戻り、作成したパイプラインを選択し、 アクション
を選択し、 パイプラインを実行
を選択し、AMIを作成します。

しばらくすると、AMIが作成されます。
8. 作成したAMIからEC2インスタンスを起動
今回は、前提に記載したとおり、マルチマスター構成のため、AMIでは複数の設定ファイルを持った状態で構成しています。 今回の起動テンプレートでは、OpenLDAP1号機用の起動テンプレートを作成します。
EC2
を開き、作成されたAMIが動作するか確認します。
起動テンプレート
を選択します

起動テンプレートを作成
を選択します。

起動テンプレート名と説明
で、
起動テンプレート名
では、 適当な名前を設定します。
今回はOpenLDAP1号機用の起動テンプレートとするために、 OSSTechOpenLDAP001
という名前で作成します。
テンプレートバージョンの説明
では、適宜説明内容を記載します。

起動テンプレート名
では、 その他のAMIを閲覧する
を選択します。

自分のAMI
から、パイプラインで作成されたAMIを選択します。

今回、パッケージに x86_64
ではなく、 aarch64
を利用しています。
インスタンスタイプ
では、 aarch64
のインスタンスタイプのみが利用されるように、
オプションのインスタンスタイプ属性
から、 CPUメーカー
で Amazon
を指定ください。

ネットワーク設定
では、OpenLDAPの通信を許可するようセキュリティグループを調整ください。

OpenLDAP1号機用の設定を読み込むように、 ユーザーデータ
で起動時に想定の設定を読み込めるように設定を行います。
ユーザーデータ
に以下を追記してください。
#!/bin/bash
cp /opt/osstech/etc/openldap/slapd.conf.001 /opt/osstech/etc/openldap/slapd.conf
その他のパラメータは、必要に応じて適宜調整ください。
設定が完了したら、 テンプレートの作成
を選択し、起動テンプレートを作成します。
作成が完了したら、 起動テンプレート
のダッシュボードから、作成した起動テンプレートを指定し、 テンプレートからインスタンスを起動
を選択します。
インスタンスタイプ
で、適当なマシンサイズの インスタンスタイプ
を指定します。
起動テンプレート
によりパラメータは既に設定されているため、 インスタンスを起動
を選択することで、
作成したAMIを利用し、起動テンプレートの手順で初期化されたインスタンスが起動します。

9. 動作確認
インスタンスが起動されたら、適宜インスタンスに接続し、動作状況を確認します。


データのデプロイは作業内容に含まれていないため、適宜データの投入を行います。