gosaaan1 / hokulea-garage

AWS とTerraform を学ぶための箱庭
Apache License 2.0
1 stars 0 forks source link

CodeCatalystに開発環境を作るには #24

Open gosaaan1 opened 3 months ago

gosaaan1 commented 3 months ago

個々のPCに開発環境を構築する場合、ハードウェア性能やOSの違いなどによりどうしても”ばらつき”が起こりやすく、セットアップがスムーズにいかない、マシンが重くて使えないというケースがよくあると思います。また複数ある開発環境それぞれをクリーンに保ちたい(バージョン違いの複数の環境を持っておきたい)というニーズもあると思います。

CodeCatalystには Devfile を使って、AWS上に簡単にクラウドの開発環境を構築する機能があり、これを使うと面倒な手順書づくりや、開発環境構築に必要なプラットフォーム依存のフォローから開放されます。

gosaaan1 commented 3 months ago

Screenshot 2024-03-24 10 37 30

開発環境の設定 (CodeCatalyst)より

ルートに devfile を含まないソースリポジトリを使用して開発環境を作成する場合、またはソースリポジトリなしで開発環境を作成する場合、デフォルトのユニバーサル devfile がソースリポジトリに自動的に適用されます。

ちなみに、以下のような内容のdevfile.yamlが生成されます。

schemaVersion: 2.0.0
metadata:
  name: aws-universal
  version: 1.0.1
  displayName: AWS Universal
  description: Stack with AWS Universal Tooling
  tags: ["aws", "al2"]
  projectType: "aws"
components:
  - name: aws-runtime
    container:
      image: [public.ecr.aws/aws-mde/universal-image:latest](http://public.ecr.aws/aws-mde/universal-image:latest)
      mountSources: true
      volumeMounts:
        - name: docker-store
          path: /var/lib/docker
  - name: docker-store
    volume:
      size: 16Gi
gosaaan1 commented 3 months ago

ユニバーサルイメージについて

public.ecr.aws/aws-mde/universal-image:latest イメージはpublic.ecr.aws/aws-mde/universal-image:3.0イメージを取得します。

3.0に含まれているパッケージについて

$ terraform --version
Terraform v1.5.7
on linux_amd64
gosaaan1 commented 3 months ago

devfile.yamlを作成してみました。Dev Environmentを開くだけで、devfile.yamlのpostStartが実行されるようす。 aws-vault exec hokulea --no-session -- env | grep AWSが動くところまで確認済み。 実際に terraform plan するところまではできていないので、改めて確認する。

https://github.com/gosaaan1/hokulea-garage/commit/31194de5d75f3f2a244fe378176aaafebd7e73a5

devfile.yamlが読み込まれているかどうかは /aws/mde/mde statusというコマンドで確認することができる。

VSCodeでいう開発コンテナのリビルドは/aws/mde/mde start --location {repository-name}/devfile.yamlでできる。