無料でiPadでコンテナ開発環境を構築する。方法を2つ以下に示す。
メモ程度の記事なので、軽く参考にすること
方法① GitHub Codespacesを利用
実施手順
①WebブラウザでGitHubアカウントを作成/ログイン
②リポジトリを作成
※webブラウザから作成すること。iPadのGitHubアプリからリポジトリの作成はできない
③GitHubリポジトリにDockerfileを用意する
# ベースイメージとしてUbuntu 20.04を指定
FROM ubuntu:20.04
# タイムゾーン設定と非対話モードの環境変数を設定
ENV TZ=Etc/UTC
ENV DEBIAN_FRONTEND=noninteractive
# パッケージリストの更新と基本ツールのインストール
RUN apt-get update && apt-get install -y \
tzdata \
curl \
wget \
vim \
sudo \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
# 作業ディレクトリの設定
WORKDIR /workspace
④Codespacesを開始
→リポジトリ画面で「Code」ボタンをクリック「Codespaces」を選択→「Create codespace main」を選択
⑤Codespacesでコンテナビルドと起動
#ビルド
docker build -t ubuntu20.04-custom .
#起動
docker run -it ubuntu20.04-custom
⑥iPadのWebブラウザ(SafariやGoogle Chrome)からアクセス可能。必要に応じてGitHubの「GitHub App」をインストール。
方法②AWS+EC2のクラウドベースの環境を構築しiPadのアプリからSSH接続する
用語説明
・AWS(Amazon Web Services):インターネット経由でサーバーやストレージ、ネットワークなどを提供するクラウドサービス
・EC2(Elastic Compute Cloud):仮想サーバーを提供するサービス。自分専用のリモートサーバーを作成してさまざまな用途で利用可能
・インスタンス:クラウド上で動作する仮想サーバーのこと
実施手順
①AWS公式サイト(https://aws.amazon.com/jp/ )にアクセスして、無料アカウントを作成する
②AWSコンソールでEC2インスタンスを作成。
(※EC2のt2.microインスタンス(仮想サーバー)は12ヶ月間無料で利用可能)
・以下のコンソール画面で、メイン画面の「最近アクセスしたサービス」で「EC2」をクリックする
・OSを選択する。コンテナ構築したいので以下の3つから選ぶ
・Amazon Linux 2:AWS公式の軽量OS。AWSサービスとの親和性が高く、サポートも充実。
・Ubuntu:世界的に人気が高く、ドキュメントやサポートが豊富。
・Red Hat系:Podmanの開発元であるRed Hatと互換性があるOS。
・インスタンスタイプを選択する。ここでは、「t2.micro」を選択する(無料利用枠に該当)
・セキュリティ設定(SSHキーの設定)を設定する。「キーペア作成」を選択する
※SSHキー(.pemファイル)を新規作成してダウンロードする。このキーはiPadやPCからサーバーに接続するために必要
・インスタンスを起動する。すべての設定を確認し、「起動」ボタンをクリックする。以上でEC2インスタンスの準備完了
※ローカルのpowershellからログインで接続確認できる
コマンドは、インスタンスに接続>SSHクライアントから確認できる
※トラブルシューティング
以下のログが出た場合の確認方法は、この記事参考に実施すること(https://qiita.com/ken992/items/101e9de458eb173971f5)
補足:IMAロール変更>アクセス管理>ポリシー>でポリシーを作成する(ポリシー内容は参考サイトを参照すること)。
そのあと、IMAロールを新規作成する。IMAロールをEC2インスタンスにアタッチする(インスタンス作成時の高度な詳細で対応可能)
重要:IMAがAmazon Linuxの場合、SSHに成功した。RedHatOSを使用するとリポジトリにec2-instance-connectがないので失敗する。
ec2-instance-connectを成功させるためには以下のコマンドをEC2インスタンス上で実施する必要がある
sudo yum update
sudo yum install ec2-instance-connect
成功するとEC2インスタンス上に以下の画面が表示される
③SSHアプリ(例: Termius)をiPadにインストールしてリモート接続する
・App Storeから「Termius」アプリをインストールする(無料で使用可能)
・Termius->Keychain->Add keyでキーをインポートする
(今回はGoogleドライブからインポート)
・Hostで新しいホストを追加する
以下の情報を入力:
Alias(エイリアス): 接続の名前(例: My EC2 Server)
Address(アドレス): EC2のパブリックDNSまたはIP(例: ec2-xx-xx-xx-xx.ap-northeast-1.compute.amazonaws.com)。
Port(ポート): 22(デフォルトのSSHポート)
Username(ユーザー名): ec2-user
Password(パスワード): 空白
Private Key(秘密鍵): 先ほどインポートしたKeyを選択
設定が完了したら自動接続される。正常に接続できると、リモートサーバーのターミナルが表示される。
以上