OCIを利用してサーバレスAPI環境を構築した際の手順を4回にわたって紹介したいと思います。
検索すればハンズオンやら既に構築された方の記事は見つかりますが、内容が古かったり動かなかったりと悩むこともしばしばありました。
そこで動作の確認が取れている構築方法のまとめを記事にしました。
これの通り実施すればサーバレスAPI環境を構築する事ができるようになると思います。
構成はこんな感じです。
※1 サービスの構成図
サーバレスAPI環境は次の4つのOCIサービスを利用しています。
- インスタンス
- コンテナ・レジストリ
- アプリケーション
- APIゲートウェイ
- ポリシー(アイデンティティ)
第1回はインスタンスの構築(前編)として、OSのセットアップ、OCI CLIのインストール、Dockerのインストールの紹介となっています。
それでは構築を進めていきます。
インスタンス
言わずと知れたサーバサービスです。
私は余っているLinuxサーバがなかったのでOCIで用意しましたが、手元に余っているLinuxサーバがあればそれを利用する事も可能です。
このサーバは、ソースコードの作成、コンテナイメージの生成、OCIのコンテナ・レジストリへプッシュする実施するために使用します。
それでは必要なミドルウェアのセットアップを始めます。
OSセットアップ
セットアップは要件毎に違うので一概には言えませんが、最低でもOSのアップデートだけは行っておいてください。
アップデート後はOSの再起動を忘れずに。
- 実行するコマンド
$ sudo dnf update
$ sudo reboot
OCI cliのインストールと実行
サーバにOCI cliをインストールします。
流れとしては次の4つステップを実施します。
- インストール
- 秘密鍵の作成、登録
- configファイルの作成
- OCI cliの実行
それでは上から順に実施していきます。
1. インストール
まずはCOI cliのインストールです。
- 実行するコマンド
$ sudo dnf install oraclelinux-developer-release-el8
$ sudo dnf install python36-oci-cli
クイックスタートをそのままを実行していますが、もしかしたら新しいバージョンがリリースされているかもしれません。
インストールが完了するとociコマンドが利用できるようになります。
2. 秘密鍵の作成、登録
ociコマンドを用いて秘密鍵を生成します。
- 実行するコマンド
$ oci setup keys
このコマンドを実行するとSSLの秘密鍵の生成と同じで、パスフレーズの入力後に秘密鍵と公開鍵が「ホームディレクトリ/.ocp」のディレクトリの下に生成されます。
生成された秘密鍵をOCIのアクセスさせたいアイデンティティユーザのWebコンソール画面から登録します。
cliでアクセスさせたいユーザの詳細画面を開き、左側のリソースメニューから”APIキー”を選択、その後”APIキーの追加”ボタンをクリックします。(※1)
表示されたAPIキーの追加画面で”公開キーの貼付け”を選択肢して”公開キー”のフォームに①で生成された公開鍵ファイル(oci_api_key_public.pem)の中身を張り付けて”追加”ボタンを押します。(※2)
登録が正常に完了すると”構成ファイルのプレビュー”の画面(※3)が表示されるので”構成ファイルのプレビュー 読み取り専用”のフォームに書かれた[DEFAULT]から始まる全ての行をコピーします。
※2 アカウントの詳細画面
※3 APIキー追加画面
※4 構成ファイルのプレビュー画面
configファイルの作成
Linuxの画面に戻りconfigファイルを生成します。
- 実行するコマンド
$ vi ~/.oci/config
コンフィグファイルを開き②でコピーした内容を貼り付けます。
“key_file”の行は、①で生成した公開鍵のパスを入力します。
パスは”/home/ユーザ名/.oci/oci_api_key.pem”です。
OCI cliの実行
OCI cliを実行する準備が整いましたので動作確認をしてみます。
- 実行するコマンド
$ oci iam user list –all
正常にコマンドが実行されると、コンソールにOCIに登録されているユーザの一覧がJSONフォーマットで表示されます。
Dockerのインストール
サーバにDockerをインストールします。
既にインストールしている場合は飛ばしてください。
- 実行するコマンド
$ sudo dnf config-manager --add-repo
https://download.docker.com/linux/centos/docker-ce.repo
$ sudo dnf install docker-ce docker-ce-cli containerd.io
$ sudo systemctl start docker
$ sudo systemctl enable docker
また、root以外でdockerを動作させる場合は、次のコマンドを実行して再度ログインします。
- 実行するコマンド
$ sudo usermod -g docker opc
次回はFn Projectのインストールとセットアップの方法を紹介します。
- カテゴリ:
- 技術情報