𝗖𝗹𝗼𝘂𝗱 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲 𝗮𝗻𝗱 𝗦𝗲𝗰𝘂𝗿𝗶𝘁𝘆: 𝗧𝗵𝗲 𝗡𝗲𝘅𝘁 𝗟𝗲𝘃𝗲𝗹 𝗳𝗼𝗿 𝗗𝗲𝘃𝗲𝗹𝗼𝗽𝗲𝗿𝘀
ウェブアプリケーションがローカルマシンで動作している。これで仕事は終わりだ、と思うかもしれません。しかし、そうではありません。
アプリケーションをどこに配置するかを決めなければなりません。どのように保護するかを決めなければなりません。そして、何千人ものユーザーが同時にアクセスしたときに何が起こるかを想定しなければなりません。
クラウドへの移行は、単にコードをアップロードするだけでは済みません。アーキテクチャとセキュリティを理解する必要があります。
PaaS(Platform as a Service)は、開発者にとって素晴らしい出発点です。PaaSでは、クラウドプロバイダーがサーバー、オペレーティングシステム、ネットワークを管理します。開発者はコードとユーザーエクスペリエンスに集中できます。
主なPaaSの選択肢には以下が含まれます:
• AWS App Runner: コンテナ化されたウェブアプリに最適です。デプロイとスケーリングを自動で行います。 • Azure App Service: GitHub ActionsやAzure DevOpsなどのMicrosoftツールを使用している場合に最適です。 • Google Cloud Run: サーバーレスコンテナに非常に優れています。使用されていないときはゼロまでスケールしてコストを節約できます。
クラウドセキュリティはあなたの責任です。プロバイダーはツールを提供してくれますが、それらを正しく使用するのはあなた自身です。
以下のセキュリティルールに従ってください:
- 最小権限の原則を使用する。ユーザーやサービスには、必要な権限のみを付与してください。AWSではIAM、AzureではMicrosoft Entra ID、Google CloudではCloud IAMを使用します。
- パスワードをハードコードしない。コード内で
const password = "123"と記述するのは危険です。 - 代わりに環境変数を使用する。コード内では
process.env.DB_PASSWORDを使用してください。 - 必ず
.envファイルを.gitignoreに追加してください。 - 本物のシークレットはリポジトリではなく、クラウドプロバイダーのダッシュボードで設定してください。
データ主権について考えてください。データがどこに保存されているか、どの法律が適用されるかを知っておく必要があります。欧州のユーザーがいる場合は、GDPRの規則に従わなければなりません。
トラフィックの急増に備えましょう。インフルエンサーがあなたのリンクをシェアした場合、サーバーがダウンする可能性があります。スケーリングによってこれを防ぐことができます:
• 垂直スケーリング(Vertical Scaling): CPUやRAMを増やしてマシンの性能を向上させます。 • 水平スケーリング(Horizontal Scaling): アプリのインスタンスを増やし、ロードバランサーを使用してトラフィックを分散させます。
常にサイトがHTTPSを使用していることを確認してください。これにより、通信が暗号化され、安全に保たれます。
実践方法:
- シンプルなウェブアプリのリポジトリを作成する。
- コード内に機密データが含まれていないことを確認する。
- VercelまたはNetlifyを使用してデプロイする。
- サイトがHTTPSを使用していることを確認する。
Source: https://dev.to/xinlin25/arquitectura-y-seguridad-en-la-nube-el-proximo-nivel-del-desarrollador-1bnd