はじめに
今回は、IntelのoneAPIを実行する環境を、EC2に作ってみました。Intel製なので、プロセッサがIntelのEC2を使います。
概要
構成図は以下になります。
- PCからSSHで接続して操作する想定
- インストールするためにパブリックサブネットで実行します
- インバウンドは自PCからのSSHのみ許可とします
- 保守用として、Session Managerを使えるようにしておきます
リソース構築
IAM Roleの作成
EC2インスタンスをコンソールから操作する、Session Managerの権限を持つIAM Roleを作成します。後ほどEC2インスタンスに割り当てます。
ここで作成した権限をEC2にアタッチして、Session Managerを使えるようにします。メンテ用に設けておくだけであり、本記事の内容では任意になります。
以下、参考の公式ページです。
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager-working-with-sessions-start.html#start-ec2-console
ここではリージョンはグローバルでOKです。
ユースケースは、EC2 Role for AWS Systems Manager を選びます。

許可ポリシーが AmazonSSMManagedInstanceCore であることを確認。

ネットワークリソース群の作成
次は、サーバであるEC2を実行するネットワークリソース群を作成します。
画面右上にて使いたいリージョンになっていることを確認して、VPC作成に移ります。


名前は適当につけて、IPやテナンシーは特別な理由がなければデフォルトにします。

ネットワークは、今回はAZを2つでパブリックサブネットを2つで作りました。

本記事では使いませんが大容量データをS3とやり取りすることを想定し、S3とのVPCエンドポイントは作っておきます。

EC2
インスタンスタイプはintel入ってるタイプを選ぶ必要があります。iがついている中で最小のm6i.largeを選びました。メモリが欲しい場合はrなどから選んでもよいかもしれません。

SSHでアクセスするため、キーペアは作っておきます。既に作ってありファイルをお持ちなら、それを選択してもOKです。


ダウンロードを促されるので、.pemファイルを保存します。

作成したキーペアが設定されていることを確認。

ネットワークは、先ほど作成したものを指定するため、編集ボタンで指定します。

外部との接続を制限するため、セキュリティグループを作成します。

インバウンドセキュリティグループを指定します。今回はソースタイプに 自分のIP を指定して、自PCからSSH飲みできるようにします。
アウトパウンドはデフォルトで無制限です。

ストレージは、インストールにそこそこ容量を使うので、50GBとしました。

高度な設定を展開し、最初に作成したIAM Roleをつけておきます。

インスタンスを起動、で作成します。

正常に起動した場合、その旨画面表示されます。

接続
作成したEC2に、今回はVSCodeのRemote-SSHを使って接続します。
pemファイルの権限編集
ダウンロードしたpemキーの権限を変更する必要があります。以下のページを参考に編集してください。
SSHで接続
まず接続するための、サーバのパブリックDNSの情報です。
EC2のコンソールから、対象のEC2を選択して接続をクリックします。


SSHクライアントタブで、パブリックDNSを控えておきます。

今回のEC2の作成方法では、パブリックIPアドレスとDNSは、起動停止ごとに変更されます。固定化する方法は以下ページなどを参考にしてください。
PCから接続するためVScodeで、Remote-SSHを使います。
先の操作では、SSH構成ファイルにはHostとHostNameのみセットされていますので、歯車マークから設定を変更します。
Host ec2ForOneApi
HostName <先ほどのパブリックDNS:変更都度修正>
User ubuntu
IdentityFile <先ほどのpemファイルのパス>
EC2を停止起動する都度パブリックDNS名は変わりますので、固定化していない場合はHostNameを都度変更ください。
保存すると、左ペインに出てきます。右側のアイコンで接続します。

Ubuntuなので、Linuxを選択します。

続行と問われる場合は、続行とします。

下のような画面になります。フォルダを開くをクリックすると、パス指定を促されます。

フォルダーを信頼して続行 で続けます。

インストール
oneAPIをEC2にインストールします。下記サイトから Intel oneAPI Base ToolkitのDownloadをクリックします。
右ペインにコマンドが出てくるのですが、アコーディオンが展開されないので、以下のURLに直接飛んでもらうのが良いかと思います。
以下がコマンドになります。
# 2. To add APT repository access, enter the command for the installation prerequisites:
sudo apt update
sudo apt install -y gpg-agent wget
# 3. To set up the repository, download the key to the system keyring:
# download the key to system keyring
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \
| gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
# add signed entry to apt sources and configure the APT client to use Intel repository:
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
# 4. Update the packages list and repository index:
sudo apt update
# Install with APT
# Y の入力後、4,5分くらいかかります
sudo apt install intel-oneapi-base-toolkit
# APT Linux | Configure the System After Installation
sudo apt update
sudo apt -y install cmake pkg-config build-essential
which cmake pkg-config make gcc g++
# Run Sample Code to Verify Installation
# <toolkit-version> の部分は、自分の環境のフォルダ名に合わせて書き換えてください
. /opt/intel/oneapi/<toolkit-version>/oneapi-vars.sh
# 例: 2025.3 の場合
# . /opt/intel/oneapi/2025.3/oneapi-vars.sh
# テスト
icpx --version
# ./bashrcに登録
echo ". /opt/intel/oneapi/<toolkit-version>/oneapi-vars.sh" >> ~/.bashrc
# 例: 2025.3 の場合
# echo ". /opt/intel/oneapi/2025.3/oneapi-vars.sh" >> ~/.bashrc
試しに実行
先のサイトの続きにある、確認のための実行を行います。
oneapi-cli
ユーティリティが出てきますので、Create a projectーcpp-Base: Vector Addを選択していきます。



Tabで Create を選択しEnterで決定します。


プロジェクトディレクトリが作成されます。

続けて、試しに動かしてみます。以下のページを参考にします。
作成したディレクトリに移動して、以下のコマンドを動かしてみます。
cd vector-add/
mkdir build
cd build
cmake ..
# プログラムのビルド
make cpu-gpu
./vector-add-buffers
クリーンアップしておきます。
# プログラムのクリーンアップ
make clean
サーバ停止
停止しておくことで、EC2自体の従量課金を抑えます。ただしストレージの従量課金は停止中でも発生します。
コンソールからEC2を選択し、インスタンスの状態 から、インスタンスを停止 を選択します。誤って終了しないよう、注意ください。

リソース削除
以下の順序で削除していきます。AWS Portalから簡単に削除できるので手順は省きます。
- EC2
- ストレージも一緒に消すように設定
- Remote-SSHの設定もここで消しておく
- キーペア
- VPC
- IAM Role
EC2だけ消せば料金がかかりませんので、再度使うことを想定するのであればEC2のみ消しておき、都度EC2を作成、キーペアは流用すれば良いかと思います。
おわりに
今回は特異な環境をAWS上に構築しました。
昨今メモリが高騰しているため、従量課金制のクラウドリソースを使うことを想定した記事を作成してみました。
この記事がどなたかのお役に立てれば幸いです。




























