まずはルートユーザーで https://aws.amazon.com/jp/ コンソールにサインインします。
I AM でユーザーを作成してください。
ユーザーを作成後、”セキュリティ認証情報”タブから”コンソールアクセスを管理”をクリック、これでサインインのリンク、コンソールのパスワードを獲得できます。


以上の情報があればI AM ユーザーでログインすることができます。

まずはルートユーザーで https://aws.amazon.com/jp/ コンソールにサインインします。
I AM でユーザーを作成してください。
ユーザーを作成後、”セキュリティ認証情報”タブから”コンソールアクセスを管理”をクリック、これでサインインのリンク、コンソールのパスワードを獲得できます。


以上の情報があればI AM ユーザーでログインすることができます。

Flutterで単語帳アプリを構築しようと思い立ち、バックエンドを Django + AWS RDS(PostgreSQL)に選定しました。今回はこの手順をメモがてら記事に残そうと思います。
使用技術スタック
仮想環境を立ち上げ、django プロジェクトを作成しました。今回は単語帳アプリなのでvocab という名前にしましたが、これを参考にしている方は好きなプロジェクト名にしてください。
python -m venv venv
source venv/bin/activate
pip install django djangorestframework psycopg2-binary python-dotenv
django-admin startproject config .
python manage.py startapp vocabプロジェクトのルートディレクトリに .env ファイルを作成し、AWS RDS で設定した際に表示される以下情報を.env にまとめました。
.gitignore に .env を追加しておけば、リモートでの管理ができます。
DB_HOST=your-rds-endpoint.ap-northeast-1.rds.amazonaws.com
DB_NAME=vocab
DB_USER=yourusername
DB_PASS=yourpassword先ほど作った.env を読み込ませます。PORTはデフォルトで5432なので直接書きました。
import os
from dotenv import load_dotenv
load_dotenv()
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': os.getenv('DB_NAME'),
'USER': os.getenv('DB_USER'),
'PASSWORD': os.getenv('DB_PASS'),
'HOST': os.getenv('DB_HOST'),
'PORT': '5432',
'OPTIONS': {
'sslmode': 'require',
}
}
}AWS RDS のコンソールにWebからアクセスして、作成したRDS の設定を変更します。

AWS Console → RDS → データベース → 「変更」→ セキュリティグループを追加
vocab という名前のデータベースを作成しました。psqlコマンドを使用するので入ってない人はインストールしてください。
brew install postgresqlpsql "host=your-rds-endpoint port=5432 user=yourusername dbname=postgres sslmode=require"CREATE DATABASE vocab;例:vocab/models.py
from django.db import models
class Vocabulary(models.Model):
word = models.CharField(max_length=100)
meaning = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)マイグレーション実行:
python manage.py makemigrations vocab
python manage.py migratevocab/views.py
from rest_framework import viewsets
from .models import Vocabulary
from .serializers import VocabularySerializer
class VocabularyViewSet(viewsets.ModelViewSet):
queryset = Vocabulary.objects.all()
serializer_class = VocabularySerializervocab/serializers.py
from rest_framework import serializers
from .models import Vocabulary
class VocabularySerializer(serializers.ModelSerializer):
class Meta:
model = Vocabulary
fields = '__all__'config/urls.py
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from vocab.views import VocabularyViewSet
from django.http import JsonResponse
router = DefaultRouter()
router.register(r'vocab', VocabularyViewSet)
def root_view(request):
return JsonResponse({"message": "Vocab API is running!"})
urlpatterns = [
path('', root_view),
path('api/', include(router.urls)),
path('admin/', include('django.contrib.admin.urls')),
]python manage.py runserver確認:
• http://127.0.0.1:8000/ → 簡易JSON
• http://127.0.0.1:8000/api/vocab/ → API 動作確認


Django × AWS RDS の連携は、セキュリティグループやパブリックアクセスの設定など、最初の接続までが一番の壁でしたが、そこを乗り越えれば快適にクラウドDBで開発が進められます。
✍️ 補足(記事に入れてもOK)
• .env に機密情報を書くので .gitignore で Git に上げないこと
• RDS の接続テストは psql の sslmode=require を忘れずに
• セキュリティグループのソースIPに注意(固定IPでない場合は都度更新)

Amplify Studio Data Manager でコンテンツ登録しようとしたところ、
IAM is required as an auth provider to use content management capabilities. To automatically add IAM and enable content management, navigate to 'Data' and select 'Save and Deploy'.と表示されました。

この画面で Go to Data Model をクリックして遷移した先で, Save and Deploy をしたところ、
An error occurred while processing your request: Deployment failed because your app backend contains hosting. Amplify Studio only supports API, Auth, and Storage deployments. Please use the Amplify CLI to deploy updates.となってしまいました。
私の場合 hosting を試しに使用していたのが問題でした。
amplify remove hosting再度バックエンドをプッシュ
amplify pushその後 Amplify Studio の Data に移動し、 Save and Deploy をしたところ、deployが成功しました!

この後 content / Data Manager に戻って無事amplify studio からデータの操作ができるのを確認できました!
