Posts

AWS EC2 Instance Connect で接続する方法

  • POST
AWS EC2 Instance Connect で接続する際にエラーが発生したため、接続できるように調査した内容を備忘録として残しておく 前提 AWS EC2 Instance Connect をインストールしておく 手順 Amazon EC2 コンソール を開く ナビゲーションペインで、[インスタンス] を選択する インスタンスを選択し、[接続] を選択する [EC2 Instance Connect] を選択する ユーザー名を検証し、[Connect (接続)] を選択してターミナルウィンドウを開く 以下のエラーが発生 インスタンス接続の設定中に問題が発生し、ログインに失敗しました。このインスタンスが開始したばかりの場合は、1~2 分後にもう一度試してください 公式のトラブルシューティングを確認 => セキュリティグループに、EC2 Instance Connect サービス IP がホワイトリストにされていないのが原因だった 以下のコマンドを実行して EC2 Instance Connect サービス IP を確認する curl -s https://ip-ranges.amazonaws.com/ip-ranges.json| jq -r '.prefixes[] | select(.region=="<<対象リージョン>>") | select(.service=="EC2_INSTANCE_CONNECT") | .ip_prefix' セキュリティグループのインバウンドルールを更新して、手順 6 で確認した IP 範囲から TCP ポート 22 にアクセスできるようにルールを更新する 再度、EC2 Instance Connect に接続する

GitHub Actions で AWS S3 に静的ファイルのディレクトリごとデプロイする方法

  • POST
GitHub Actions で AWS S3 に静的ファイルのディレクトリごとデプロイする方法を備忘録として残しておく 事前準備 GitHub Actions 用の IAM ユーザを作成 GitHub の Environments に上記 IAM ユーザのシークレットを登録 Environments > Environment Secrets S3 のバケットを作成(ホスティングする場合は公開設定にする) S3 のバケット名はグローバルでユニークにする必要がある 公式ドキュメント 前提 S3 のバケットは作成済 Package Manager は npm を使用(yarn でも可) npm build で dist フォルダ配下にデプロイ資産が作成される 実際のコード name: cd-dev on: push: branches: - "develop" workflow_dispatch: jobs: build-deploy: runs-on: ubuntu-latest environment: develop steps: - name: Checkout uses: actions/checkout@v4 # ① - uses: actions/setup-node@v4 with: node-version: 20 cache: 'npm' cache-dependency-path: ${{ github.workspace }}/package-lock.json - name: Install Dependencies run: npm install - name: Build run: npm run build - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v1 with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: ${{ secrets.AWS_REGION }} - name: Deploy to S3 run: aws s3 sync ./dist s3://<<S3 Buckets Name>> --delete # ② # ③ - name: Clear cache run: aws cloudfront create-invalidation --distribution-id <<CloudFront Distribution ID>> --paths "/*" ポイントの説明 ① 依存パッケージをキャッシュする cache: npm or yarn cache-dependency-path: package-lock.json のパスを指定 ② –delete を付与するとバケットには存在するが、ディレクトリにはないファイルがあった場合に、バケットのファイルを削除する ③ CloudFront のキャッシュが有効になっている場合は以下も行う