AWS関連のことを調べてみた

AWS関連のことを調べてみた
目次

検証!Amazon CodeCatalystのDev EnvironmentでVisual Studio Codeを起動してみる

# 検証!Amazon CodeCatalystのDev Environmentで快適なVS Code環境を構築してみる

## はじめに

この記事では
Amazon CodeCatalystのDev Environmentを使って、VS Codeの開発環境を構築する方法を紹介します。
主な内容としては実践したときのメモを中心に書きます。(忘れやすいことなど)
誤りなどがあれば修正していく想定です。

## AWS上で快適に開発したい

AWSのサービスを使ってアプリケーションを開発しているような場合、
AWSのサービスとの連携がしやすい環境を構築したいですよね。

たいていの場合は、Visual Studio CodeのようなIDEを使って開発したり
JetBrainsのIDEを使って開発したりすると思います。

AWSだったらCloud9を使えばいいじゃん!という意見もあるかもしれませんが、使い慣れているIDEを使いたいという場合もあるでしょう。

(とはいえ、vimやemacs使いであれば、Cloud9でもそれらを使えるので、そういう場合はCloud9でもいいかもしれません)

元記事を表示

Security Hubのセキュリティ標準にCIS Benchmark v3.0.0が追加されました

## はじめに
私が大好きなSecurity Hubに新たなセキュリティ標準「CIS Benchmark v3.0.0」が追加されました。

## Security Hub セキュリティ標準
セキュリティ標準には、規制のフレームワーク、業界のベストプラクティス、企業ポリシーのコンプライアンスを判断するための一連の要件が含まれています。

Security Hub は、要件をコントロール(検知項目)にマッピングし、各項目のセキュリティチェックを実行して、
セキュリティ標準の要件が満たされているかどうかを評価します。

## CIS Benchmark
CIS(Center for Internet Security)は米国政府機関や企業、学術機関などが運営する非営利団体で、最新のサイバーセキュリティに関するベストプラクティスソリューションを開発・検証しています。

現在、AWSでは以下のCIS Benchmarkがサポートされています。
* v1.2.0
* v1.4.0
* v3.0.0 New!!

## 新規追加項目(v1.4.0との比較)
v1.4.0と比較して、13項目が追加

元記事を表示

Terraformで構築するPrivate SubnetのRDSインスタンスへのアクセス手順

## 背景
AWSでは、データベースをセキュアに管理するために、RDSインスタンスをプライベートサブネットに配置することが一般的。しかし、プライベートサブネットに配置されたRDSインスタンスにアクセスするためには、通常、踏み台(Bastion)ホストが必要で、これらの方法は、セキュリティ上のリスクも伴う。

そこで、AWS Systems Manager (SSM) セッションマネージャーを利用することで、これらのリスクを解消し、セキュアにRDSインスタンスにアクセスしようと思う。

## やることのイメージ
“`
LocalHost

(SSM)

SSM EC2 Instance (Public Subnet)

(SSM)

RDS Instance (Private Subnet)
“`

※SSM EC2 Instance も、Private Subnetにおくほうがいいらしい? が、SSHで中身確認したりしたいので、Publicにおいてる

## Terraform で SSM EC2 Instance 構築
VPC、Subnet、RDS Instan

元記事を表示

EC2 上で動くECS Task から外界のインターネットに接続できないときにハマったこと

## 概要

タイトルのままです。

ECSクラスターを作成し、そのクラスターの中にEC2を立て、
そのEC2を使ってタスク定義からECSタスクを起動すると、そのECSタスクから外界に接続できないエラーとなり、ハマっていました。

## 症状
EC2は起動テンプレートを利用して作成していました。
また、ECSのネットワークはawsvpc を利用しており、エラーとなっていたのでその後bridgeにしました。

やりたかったことは、ECSタスクからS3にアクセスしてファイルをダウンロードすることでした。
が、エラーとなっていたので、以下のことを試しました。

1. EC2にSSHして、EC2からS3にアクセスできることを確かめる(できた)
2. ECS Task に EC2からDocker exec し、pythonのrequests などを送ってyahoo.co.jp とかにそもそも接続できるかやった(エラーとなった)

## 解決策

EC2を起動テンプレートから作成していたのですが、
その起動テンプレートに紐ついているSubnetをパブリックにすることで解決しました。
また、EC

元記事を表示

TerraformでAWSリソースを作成(VPC編)

## はじめに
Terraformを使ってAWSリソース(VPC、EC2)を作成する手順について、Terraform初学者の自分用のメモを兼ねて記載しておきます。
今回は下記アーキテクチャ図の環境を構築します。
## 前提
・windows環境であること
・Terraformが端末にインストールされていること
・AWS CLIが端末にインストールされていること
・AWSのアカウント(アクセスキーとシークレットアクセスキー)があること

## アーキテクチャ図
![Terrafrom用.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3677761/110f8df9-f9ff-3107-4cb9-7a9b210c9ec7.png)

## やること
1.tfファイルの作成
2.AWS Configの設定
3.Terraformでリソースの作成
4.AWSリソースの確認

## 1.tfファイルの作成
Terraformでは「.tf」というファイルを使ってインフラ構築を行います。
全てを1つのフ

元記事を表示

IAM Identity Centerを使ってログインしてみた。

# 背景
IAM Identity Centerというのは一度の認証で複数のアカウントにログインができるということは理解していたが、漠然としていたためハンズオンを通じてもう少し自分なりに理解しようと感じました。学んだことを私なりに記事にしました。

# IAM Identity Centerとは
IAM Identity CenterとはAWS Organizationsで管理されている複数のアカウントがある環境下で各アカウントへのログインや権限の切り替えを簡単にすることができる機能を提供します。
AWS Single Sign-onの後継サービスらしいです。

### 図で説明
![AWS IAM Identity Centerとは.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3659733/b5685e4b-9d50-9f3d-7732-bb6efe999075.png)

許可セットは各アカウントに対するアクセス権限をセットにしたものです。
例えば、「Account 1」と「Account 2」

元記事を表示

AWS EC2サーバ作成

## EC2
Amazon Elastic Compute Cloud (Amazon EC2) は、Amazon Web Service (AWS) クラウドでオンデマンドのスケーラブルなコンピューティングキャパシティーを提供します。
Amazon EC2 を使用すると、必要な数 (またはそれ以下) の仮想サーバーの起動、セキュリティおよびネットワーキングの構成、ストレージの管理ができます。
### EC2サーバの作成
管理コンソールのサービスからEC2を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3184769/2635459a-512d-bd41-6a82-b8e02fee1910.png)
EC2ダッシュボードのメニューインスタンスをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3184769/36d84607-7e3c-1423-c6e1-9e35afe85bf

元記事を表示

【Python x AWS】boto3とwatchtowerを使ってログ出力する (ExpiredTokenExceptionエラーとは)

# 概要
Pythonのwatchtowerとboto3を使って、AWS Cloudwatchlogsにデバッグ内容を出力するコードを実装しましたので紹介します。フレームワークはFastapiを利用しましたが、Pythonであればどれも似た形だと思います。

# コード解説

“`config.py
from pydantic import BaseSettings
from time import time
import os
from datetime import datetime
import pytz
import boto3
from botocore.session import Session, get_session
from botocore.credentials import RefreshableCredentials
import watchtower
import logging
import logging.config

class Settings(BaseSettings):

# 環境変数をここに #
region_name:

元記事を表示

AWS IoT Greengrassによるエッジでのデータ加工&IoT SiteWiseへの転送 – 後編

# はじめに
前編からの続きです!
前編は[ここ](https://qiita.com/bakuchiku/items/84b4928678b3c5882e9e)からどうぞ👀👀

# 検証開始
前回はセンサデータをGreengrassに収集するところまでを実装しました。
今回はGreengrass上でデータの加工と、Stream Manager経由でIoT SiteWiseへデータ転送するところを実装します。
1. Stream Managerのインストール
1. データ加工&データ転送コンポーネント作成

# 1. Stream Managerのインストール
Stream Managerの詳細はこちらを確認。
[Stream manager – AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/v2/developerguide/stream-manager-component.html)

利用のメリットとしてはこんな感じです。
この辺りがSiteWise APIを用いてデータ転送する時と比べたメリットになるかと

元記事を表示

EC2 インスタンスを既存のECS Clusterに入れたいが入らないとき

# 概要

題名の通りです。

## やろうとしたこと

“`python
userdata = “””#!/bin/sh
# ECS_CLUSTER
echo ECS_CLUSTER={0} >> /etc/ecs/ecs.config
“””.format(CLUSTER)
instance = ec2.create_instances(
InstanceType=InstanceType, ‘m5a.4xlarge’,
UserData=userdata,
NetworkInterfaces=[
{
‘AssociatePublicIpAddress’: True,
“DeviceIndex”: 0,
}],
TagSpecifications=[
{
‘ResourceType’: ‘instance

元記事を表示

AWS S3, Athena, Glue を活用した統合データ分析基盤 – AWS RDS, Kintone, Freee のデータを一元管理

社内で RDS, Kintone, Freee など様々なサービスを使っていて、それらの情報をー箇所で集約し、分析するためのデータ基盤の必要がありました。
そのために以下の手順でデータ基盤を構築してみました。

1. データのまとめ:AWS Glue を用いてデータを S3 に抽出しカタログ化
2. データ加工:dbt-athena でデータ変換
3. クエリ実行:Athena でクエリ
4. データ分析:Metabase でのデータ分析とお可視化

将来的に集めるデータ量が増加見込みなので、コスト効率と拡張性の面で S3 での保存は適切かと考えました。
また、開発チュー自体少人数なので、煩雑な管理作業を避けるためにサーバーレスや自動化に注力し、ETL(Extract, Transform, Load)ワークフローは AWS Glue、Athena、dbt で構築しました。

##### 安全かつスマートにインフラを管理

インフラ管理には AWS コンソールで直接操作するのではなく、CloudFormation を活用していますので、CloudFormation と SaaS サービ

元記事を表示

[ECS・RDS] AWS CLIを利用して、ECSコンテナからRDSに接続するで!!!

# はじめに
:::note info
– この記事は紆余曲折し、エラーを解消しながらゴールまで突き進む物語です
– 最短の手順だけを述べたものではありません
– 少しでも皆さんのデバッグのヒントになればと思っております
:::

# 目的
掲題の実現

# 前提
– AWS CLI セットアップ済み
– ECS構築済み
– RDS構築済み
– 今回はMySQLを利用します
– aws-vault設定済み(どちらでも可)

# Systems Managerのパラメータストアに環境変数を用意
パラメータストアにRDSへの接続に必要な環境変数を用意します

![自分のパラメータ_-_AWS_Systems_Manager_-_パラメータストア.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2515002/e309227e-c27c-c479-b049-c7e3ab11aa72.png)
MySQLですと、上記の環境変数を用意します
ホストには作成したRDSのエンドポイントを設定してください

元記事を表示

【知らないと料金発生!?】AWS無料枠での注意点3選

AWSには一年間の無料利用枠があります。プログラミング学習をされている方の中には、これを利用してAWSを勉強されている方も多いのではないのでしょうか?

ただしこの無料枠もすべてなわけではなく、使い方によっては料金がかかってしまいます。私も気づかない間に、料金が発生してしまっていました。

なので今回は同じようにAWSを学習している人に向けて、料金が発生しないように注意してほしいこと3つを紹介します!

## AWS無料枠とは
AWSの無料枠は、AWSのプラットフォーム・製品・サービスを無料で実際に体験できる枠組みです。ビジネス用途としては物足りない内容となっていますが、学習目的であればこの無料枠でいろいろ学ぶことができます。AWS無料枠の対象サービスは100以上あります。その中で使用するサービスにより、「12か月間無料」「常に無料」「トライアル」の3つに大別されます。

[>> 無料枠に関するAWS公式ページ](https://aws.amazon.com/jp/free/?all-free-tier.sort-by=item.additionalFields.SortRank&al

元記事を表示

[Route53・ACM・CloudFront] サブドメインをきり、SSL証明書を発行し、CloudFrontの代替ドメインに登録する

# はじめに
:::note info
– この記事は紆余曲折し、エラーを解消しながらゴールまで突き進む物語です
– 最短の手順だけを述べたものではありません
– 少しでも皆さんのデバッグのヒントになればと思っております
:::

# 目的
掲題の実現

# 前提
– サブドメインを切る元のドメインを所有している

# Route53でホストゾーンを作成しましょう

![貼り付けた画像_2024_05_29_17_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2515002/52163459-bfe6-7d11-0b73-30d79f96b4e5.png)

### NSタイプのレコードとは
– NS(ネームサーバー)タイプのレコードは、特定のドメインに対してどのネームサーバーが権威を持っているかを指定します
– これにより、DNSクライアントはドメインのDNS情報を取得するためにどのサーバーに問い合わせるべきかを知ることができます
– Route 53では、ドメインをホストするために自

元記事を表示

Amplifyで既存環境を基に新しい環境を構築するスクリプト

## はじめに
Amplifyの環境をとある周期で再作成しているのですがいちいちCLI叩いてってのが面倒になったのでほぼ自動化しました。雑に作っているので使うなら勝手にアップデートしていってください。
今回のスクリプトは環境の追加~デプロイまでを行います。

## 前提
– Amplify cliをインストール済み
– GitでAmplifyのソース管理をしている

## コードところどころ解説
文字化け回避です。
いらないでしょって?確かにな。
“`bash
export LANG=en_US.UTF8
“`

ENV_NAMEに記載した名前で環境が構築されます。
※スクリプトを実行するときの引数にENV_NAMEを入れてもいいかもしれないですね。
ちなみにこれを実行するとプロファイルを聞かれるのであなたの環境に適したものを選択してください。
“`bash
amplify env add “$ENV_NAME”
“`

結果の成功失敗を知りたいならこれ書いておけばいいです。マジで。
“`bash
if [ $? -ne 0 ]; then
echo “Error: ad

元記事を表示

[ECS] AWS CLIでECSのコンテナにログインする方法

# はじめに
:::note info
– この記事は紆余曲折し、エラーを解消しながらゴールまで突き進む物語です
– 最短の手順だけを述べたものではありません
– 少しでも皆さんのデバッグのヒントになればと思っております
:::

# 目的
構築済みのECSのアプリケーションコンテナにAWS CLIでログインする
# 前提
– ECS構築済み
– AWS CLI設定済み
– aws-vault導入済み(どちらでも可)

# 最初に疎通確認

“`
aws-vault exec sotaheavymetal21 — aws sts get-caller-identity
{
    # ここにユーザー情報出力
}
“`
該当のAWSアカウントに接続できていることを確認できました

# aws ecs execute-commandを実行します

下記の<>の中を埋めていってください

“`
aws-vault exec — aws ecs execute-command \
–cluster \

元記事を表示

AのOrganizationのユーザーからBのOrganizationのS3を叩けるIAMとPolicyの設定

# 概要
– プロジェクト単位やプロダクト単位でOrganizationを分けている
– AというOrganizationでユーザーを作り、Bで管理しているS3を操作できるように設定してみた
– ボツになったけどせっかく設定したのでメモしておく

# ざっくり

– Aでユーザーの用意
– AユーザーにPolicyを用意してアタッチ
– BのS3のBucket Policyを設定する

これだけ

# 手順
## Aでユーザーの用意

世の中手順はいっぱいあるので省略

## AユーザーにPolicyを用意してアタッチ

* `${bucket_name}` には、BのS3 Bucket名が入る
* あとはS3使う上で一般的なやつだと思う

“`json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Action”: [
“s3:GetObject”,
“s3:PutObject”,
“s3:DeleteObject”
],
“Resource”

元記事を表示

AWS Glue Studio の Example jobs を実行してみる

## はじめに

AWS のサーバーレスデータ統合サービス **AWS Glue** を使ってみました

その中でも分かりやすそうな **AWS Glue Studio** で Example jobs を実行します

具体的には以下のようなことをします

– S3 上の CSV ファイル3つを結合する
– 特定の列だけ抽出する
– 各列を数値や論理型に変換する
– Parquet 形式で出力する
– 出力ファイルに対して Athena から SQL を実行する

![etl.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1485835/ec1c6684-01de-0a4e-c4a2-3e0ed9a8c27c.png)

Parquet はデータを効率的に保存・検索するためのファイル形式です

https://www.databricks.com/jp/glossary/what-is-parquet

思ったよりすんなり行かなかったので記事に残しておきます

## AWS Glue とは

元記事を表示

gpt-4oAPIを利用してアーキテクチャ図からCFNテンプレートを生成してみる

# はじめに
株式会社TechoesインフラチームのTです!
今回は、5/13にリリースされたばかりのgpt-4oを使用してAWSのCFNテンプレートを生成する手順を解説していこうと思います。
# 実行環境
– Windows: 11 Home
– Python: 3.11.4
– モデル: gpt-4o
– openai: 1.30.1

# Chatgpt APIとは
OpenAI社が提供しているChatGPTをPython等のプログラムから呼び出すためのインターフェースです。
Pythonなどのプログラミング言語からAPIを呼び出すことでアプリやサービスにテキストを生成する機能や理解する機能を実装することが可能になります。

### 料金について
ChatGPT APIは処理するテキスト量によって料金が決まる**従量課金制**となっています。このテキスト量を計測する単位が**トークン**です。
トークンは入力トークンと出力トークンの2種類があり「1000トークンあたり、いくら」という料金設定になっています。具体的な費用は使用するGPTモデルによっても変化します。
– 入力トークン

元記事を表示

Databricks Gitフォルダーを試してみた

# 背景・目的
DatabricksのGitフォルダーについて特徴を整理し、試してみます。

# まとめ
下記に特徴をまとめます。

|特徴|説明|
|:–|:–|
|Gitフォルダーとは|・DatabricksのビジュアルGitクライアント
・API|
|Gitフォルダーでサポートする内容|・クローン
・コミット
・プッシュ
・プル
・ブランチ管理
・コミット時の差分の視覚的比較|

# 概要
[Databricks Git フォルダーと Git の統合](https://docs.databricks.com/ja/repos/index.html)を基に整理します。

> Databricks Git フォルダーは、Databricks のビジュアル Git クライアントおよび API です。 リポジトリのクローン作成、コミットとプッシュ、プル、ブランチ管理、コミット時の差分の視覚的比較などの一般的な Git 操作をサポートします。

– Gitフォルダーとは、下記を指す
– DatabricksのビジュアルGitクライアント

元記事を表示

OTHERカテゴリの最新記事