AWS関連のことを調べてみた2022年03月03日

AWS関連のことを調べてみた2022年03月03日

AWS EC2 RDS S3の組み合わせでインフラ構築する時にやること決めておくことリスト

# 概要

– AWSにてベーシックなWebサービスをデプロイする際に必要な内容をリストにしてまとめてみる

# ご注意

– 筆者はAWS初心者です。もっと良い構築方法は必ずあります。抜け漏れもあるはずです。

# 仕様

– AWS EC2 AmazonLinux2インスタンスを用いてWebサービスを提供する。データはRDSのMySQLに格納する。
– 専用のVPCを作成する。
– VPCの中にパブリックサブネット1個とプライベートサプネットを2個を定義する。
– EC2インスタンスはパブリックサブネット内に設置
– 2個のプライベートサブネットはサブネットグループとしてグルーピングする。
– プライベートサブネットのサブネットグループはパブリックサブネットからのみ接続できる。
– EC2で提供するサービスはパブリックIPアドレスを用いてブラウザからアクセスするものとする(Route53でのドメインとIPの紐付けはしない)
– デプロイするアプリケーションでアップロードされるファイルなどはS3に格納する

# やること

1. ネットワーク部分の設定
1. VPCの作成

元記事を表示

G.U.Introduction

【Corporate Site】

[G.U.Labs株式会社] :https://gulabs.com/ja/
革新的な発想と技術で、より自由で楽しい世界を。
G.U.Labsは、ブロックチェーンが引き起こす様々な社会変革に対応するためのクラウドツールやソリューションの提供、セキュリティ技術、研究開発力を提供します。

[G.U.テクノロジーズ株式会社]:https://gu-tech.com/
デジタルの力で、人々に自由を。
G.U.Technologiesでは、ブロックチェーンによる金融と情報が融合した新たなデジタル革命時代に向けて、豊かな発想と確固たる技術で誰もが自由で幸せな社会を作っていくことを目指します。

【Product Site】

[G.U.Blockchain Cloud]:https://www.bccloud.net/ja/
日本初。簡単3ステップで
ブロックチェーン基盤を構築。
G.U.Blockchain Cloudは「誰でも簡単・低コスト」に初期導入が可能。Enterprise領域で利用できる機能やセキュリティを備えたEthereum互換ブロックチェー

元記事を表示

cloudwatch.get_metric_dataを利用してECSで実行しているタスク数を取得する

事前準備:https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/deploy-container-insights-ECS-cluster.html

def get_task_cnt():
“””
ECSタスク数の取得を行う

Returns:ECSタスク数(int)
“””

cloudwatch = boto3.client(‘cloudwatch’)
response = cloudwatch.get_metric_data(
MetricDataQueries=[
{
‘Id’: ‘m1’,
‘MetricStat’: {
‘Metric’: {
‘Namespace’: ‘ECS/ContainerInsights’,

元記事を表示

TerraformでAWS RDS Aurora MySQL3(MySQL 8.0互換)クラスタを最低限構築する

# 環境
2022/03/01現在

“`
$ terraform -v
Terraform v1.1.2
on linux_amd64
“`

# tfファイル

## クラスタ設定

“`terraform:rds_cluster.tf
resource “aws_rds_cluster” “mysql80” {
cluster_identifier = “aurora-mysql80-cluster”

engine = “aurora-mysql”
engine_version = “8.0.mysql_aurora.3.01.0”
// engine_versionをこう指定しないとデフォルトのAurora MySQL2(MySQL5.7互換)で設定されてしまう
// 8.0.mysql_aurora.までは共通で、後ろのバージョンはWebコンソールの”利用可能なバージョン”の値だと思われる
// 今回は値取得のために新しくクラスタを作成し、terraform importして取得した

master_username = “

元記事を表示

Docker+AWS Lambdaのローカルテスト環境を作成する

## 概要

Lambdaのローカルテスト環境をDockerで作成しました。本記事ではPythonで書いています。
公式ドキュメントを読んでも上手くいかなかったので、記事にします。

https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/images-create.html

## 用意するもの

– Dockerコマンドを実行できる環境

## 構築手順

### ディレトリ構成

“`
(プロジェクトルートディレクトリ)/
├── Dockerfile
├── requirements.txt (不要なら作成しなくて良い)
└── app.py
“`
### ファイル作成

“`Dockerfile:Dockerfile
FROM public.ecr.aws/lambda/python:3.8

COPY app.py ${LAMBDA_TASK_ROOT}
COPY requirements.txt .

RUN pip3 install -r requirements.txt –target “${LAMBDA_TA

元記事を表示

AWS SAAを1ヶ月半で2回不合格となり、3回目で合格したお話 (2022年2月)

## はじめに
AWS SAAを先日取得しましたので、勉強方法などをこの記事にまとめておきます。
これから受験する方などのお役に立てましたら幸いです。

### 前提
– 普段はWebアプリケーションの開発やマネジメントをしている。インフラ構築の経験はなし。
– エンジニアになってから1年半くらい。
– CLFは持っていない。基本情報とかも持っていない。
– ネットワークやセキュリティーなどに関してもそこまで詳しいわけではない。

## 勉強時間
ちなみに合格するまでに2回ほど不合格となりました。
不合格となると2週間後でなければ試験予約ができないため、不合格となった時点ですぐに2週間後の試験に予約してました。

|1回目 |2回目 |3回目 |
|—|—|—|
| 709 | 689 | 760 |

このような点数の推移でした。

## 1回目の受験対策
### 使用した教材
https://www.udemy.com/share/101rfM3@VnRe9xITREEIt7eG4Uva4BY7-bkZ1KhILVyUGvvOozzbVCL2cJ5w4zEmW

元記事を表示

EventBridgeではDescribe*やList*アクションは処理されない

S3やDynamoDBへの攻撃を検知する一つの方法は、「どのようなデータを対象が持っているか」を攻撃者が知ることができるAPIの動向を確認することです。
例えば`ListBuckets`や`DescribeTable`といったAPIです。

というわけで該当APIが呼ばれたらEventBridge経由でなにかすることを考えました。

しかし、公式ドキュメントにある通り、`List*`, `Describe*`, `Get*`アクションは無視されます。
https://docs.aws.amazon.com/ja_jp/ja_jp/eventbridge/latest/userguide/eb-ct-api-tutorial.html

>CloudTrail 経由で送信されるイベントはすべて、detail-type の値が AWS API Call via CloudTrail になっています。キーワード List、Get、Describe で始まる API アクションからのイベントは EventBridge によって処理されませんが、以下の AWS STS アクションからのイベント

元記事を表示

ECSでGPUを使うタスクを実行する方法

## 経緯
自分がAWS初心者ということもあり、ECSでGPUを使うタスクを実行するまでに、いくつか詰まるところがあったので共有します。

## やりたいこと
自分がやりたかったことは、下の画像のような流れを作ることです。画像データがS3にアップロードされたタイミングで、LambdaがECSの機械学習関連のタスクを実行して、処理の結果をs3にアップロードするというものです。
![aws_arch.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/663246/c87ea61e-8bbb-9e17-4038-ac10d2959d0c.png)
今回は、画像の赤枠で囲まれた、ECSでGPUを使うタスクを実行する方法を説明します。

## 手順
以下の手順では、起動タイプがEC2のECSのタスクのやり方です。[こちら](https://github.com/aws/containers-roadmap/issues/88)のやりとりを見てみたところ、現時点では**FargateはGPUサポートされていない**みた

元記事を表示

AWS EC2でWindowsServerを構築してhttpsで接続するまでの手順

## 背景と実施したこと
仕事の都合でAWSでWindowsServerを作る機会がありました。
WindowsServerの構築・設定は慣れていない部分もあったので手順を残しておきます。
IT初心者の方にとっては、Webアプリをインターネットに公開するまでの流れがわかると思うので機会があれば参考にしてみてください。

参考にした記事
[freenom](https://www.lancork.net/2019/05/how-to-use-freenom-free-domain/ “freenom”)
[Amazon EC2(Windows OS)で構築したWebサーバ(IIS)のSSL設定](https://qiita.com/u-bayashi/items/9a8570f412db0a28763c)

## Step
1. EC2 WindowsServerの構築
1. インスタンスの作成
1. Elastic IPアドレスの割当
1. セキュリティグループの設定
1. リモートデスクトップでの接続
1. IISのインストール・ローカルでの確認

元記事を表示

Presigned URLの発行と取得したURLを使用して画像ファイルをGET/PUTする。

## 目的
コンテンツをサーバー上にアップロード・ダウンロードして配信するというユースケースがある。コンテンツを保持しておくサービスとして、AWSにS3というサービスがあるのでそれを利用する。

## 環境
– AWS Lambda Python 3.9

## Lambdaコード
“`python
# — coding: utf-8 —
import boto3
from botocore.client import Config
import os

REGION_NAME = os.environ[‘REGION_NAME’]
S3_BUCKET_NAME = os.environ[‘S3_BUCKET_NAME’]
DURATION_SECONDS = os.environ[‘DURATION_SECONDS’]
KEY_NAME = os.environ[‘KEY_NAME’]

s3 = boto3.client(‘s3′, config=Config(signature_version=’s3v4’))

def lambda_handler(event, cont

元記事を表示

AWSのアクセスキーをハードコードする

ソースコードを公開するわけじゃないしAWSの認証キーはハードコードしても良いよね。
という事で色々と調べました。

ビルドした実行ファイルは第三者に渡す可能性があるかも、というシチュエーション。

## 結果

– **ベタでハードコードした場合**
– 中間言語だろうがネイティブコードだろうが即バレ
– 当然ですね。
– ただ、バイナリから抽出した文字列一覧から「コレ、AWSの認証情報だな??」と感じ取るセンスは必要。
– 難読化した場合
– **.NET(C#) 中間言語にコンパイルした場合**
– 難読化したところで実行ファイルからソースコードを復元出来る可能性が高いのであまり意味はない。ちょっとした時間稼ぎ程度。
– 「このアプリ、難読化された認証情報がハードコードされてそうだな」と感じ取るセンスが必要。
– **C++等ネイティブコードにコンパイルする

元記事を表示

[AWS]Savings Plansとオンデマンドキャパシティー予約

AWSの「Savings Plans」と「オンデマンドキャパシティー予約」の紹介です。
「Savings Plans」はリソースの使用料金が割引になる仕組みで、「オンデマンドキャパシティー予約」と組み合わせると柔軟な運用が可能になります。

## Savings Plansとは
1年または3年の期間で特定の使用量(USD/時間で測定)を契約すると使用量の割引が受けれる料金プランで、オンデマンドと比較し最大72%の割引を受けることが出来ます。
例えば$100/時間で契約をした場合、1時間あたり$100までの利用に対して割引が行われ、1時間あたり$100を超えた場合はオンデマンドの料金が適応されます。

3種類のプランがあり、プランによって適応可能なサービスは異なりますがAmazon EC2、AWS Lambda、AWS Fargateなどに利用です。
EC2以外のサービスに適応できる点がうれしいですね。

同じような仕組みでリザーブドインスタンスがありますが、Savings Plansは利用料に対するコミットなのでリザーブドインスタンスと比較し構成を柔軟に変更しやすいメリットがあります。

元記事を表示

AWS FargateではVPC Endpointを使う

AmazonECRからコンテナイメージをpullし、private-subnetにおいてFargateでホストされるAmazonECSタスクを運用します。コンテナイメージをpullする際は、インターフェイスタイプのVPCエンドポイントを使用するようにし、それ以外はNatGatewayを使用することで通信費を大幅に低減させつつ、セキュリティを高めることができるのでおすすめです。
ちなみにNatGatewayを使用する場合、後で請求を見て驚かないように下記3点のコストを意識する必要があります。
だとしてもSquidを構築して運用する気にはならない…
– 時間単位料金
– データ処理料金
– 転送料金:インターネットへの通信、NatGatewayとEC2インスタンスが異なるアベイラビリティーゾーンにある場合に発生
冗長構成で1GB使用する想定だと **$90.64**となります。

“`bash:runningcost
730 時間 (1 か月) x 0.062 USD = 45.26 USD (ゲートウェイの 1 時間あたりの使用料金)
1 GB/月 x 0.062 USD = 0.

元記事を表示

git-secretsをwindowsに導入したときの手順

# 1. PowerShellの設定を変更する

– 管理者権限でPowerShellを起動する
– 作業ディレクトリはホームディレクトリ(C:\Users\PC_User とする)
– PowerShellでスクリプトを実行できるよう設定を変更する

“`
PS C:\Users\PC_User> Set-ExecutionPolicy RemoteSigned
“`

# 2. git-secretsをインストールする

“`
PS C:\Users\PC_User> git clone https://github.com/awslabs/git-secrets.git

PS C:\Users\PC_User> cd .git-secrets

PS C:\Users\PC_User\.git-secrets> ./install.ps1
“`

# 3. gitの設定ファイルにAWSアクセスキーのパターンを登録する

“`
PS C:\Users\PC_User\.git-secrets> cd ~

PS C:\Users\PC_User> git secrets

元記事を表示

EC2起動のたびに自動的にEFSをマウントするようにする

## 自動でEFSをマウントしたい・・・
複数のEC2でEFS(Elastic File System)をマウントして「ネットワークファイルシステム完成!」と思ったら、なんてことはなく、EC2を再起動するとマウントは解除されてしまいました。。。

定期的なEC2の停止⇒起動がサイクルに含まれているサービスの場合、これはちょっと困ります。

なので起動の度に自動でEFSをマウントするよう設定してみようと思います。

### 環境
Amazon Linux2です。

## amazon-efs-utilsをインストール
まさにこの要件のためのツールが提供されているようなので、こちらをインストールします。

“`bash
$ sudo yum install -y amazon-efs-utils
“`

## EFSをマウントする

“`bash
$ sudo mount -t efs <ファイルシステムのID>:// <マウントディレクトリ>
“`

マウント出来ているか確認します。

“`bash
$ df -h

# マウントしたEFSが表示されていればOK
<ファイル

元記事を表示

AWSを学ぶ前のインフラの基礎

# インフラとは
***インフラは「インフラストラクチャー」の略称です。***
webアプリケーションが動くための土台の役割があります。
代表的なサービスに“`AWS “`があります。

# 記事の概要
この記事は***インフラの業務をするための最低限の基礎知識を
知るための記事***です。
AWSを学ぶためには基礎知識が必要になります。***AWSを学ぶ前段階の記事***です。

# おすすめ資料
https://qiita.com/toma_shohei/items/b7a001d26bd988d52021

AWSのような代表的なサービス詳細はこの記事に載っています。
こちらの記事を読む前段階としてご活用ください。

クラウドエンジニア向けの資料がいろいろ載っているみたいです。

https://qiita.com/yoshiyama_hana/items/96dbe0b82ca783c86be0

# オンプレミス
自社内でサーバーなどの設備を管理したり、運用したりする自社で完結するシステムです。
最近は“`クラウド“`が台頭したことにより、オンプレミスを扱う企業は

元記事を表示

【Terraform】aws_iam_policy_attachmentを使うとtfstate外のリソースにも影響を与える可能性

# これはなに?
Terraformを用いて、AWS環境のIAMロールとIAMポリシーのアタッチをする際に
[iam_policy_attachment](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_policy_attachment)を使用するとハマる罠があるのでその事象についてのメモです。

## 事象

例えばですが、下記の様な記述でIAMロールへIAMポリシーをアタッチしていると想定します。
“`iam.tf
# ロール
resource “aws_iam_role” “lambda_role” {
name = “kurono-policy-test-role”

assume_role_policy = <

元記事を表示

AWS認定資格をまとめてみた

## AWS認定試験一覧をまとめてみました。
(参考:https://aws.amazon.com/jp/certification/exams/?nc2=sb_ce_exm)

はじめに私自身もAWS認定資格を全て取得しています。
以下を参考に是非、AWS認定の受験を検討してはいかがでしょうか。
![全資格.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1493529/1fc27d37-bd10-ee92-1522-6a35d894788a.png)

## AWS試験一覧

| 試験名 | 受験コード | 受験料 | 難易度 |
|:-:|:-:|:-:|:-:|
| AWS 認定 クラウドプラクティショナー | CLF-C01 | 11,000 |低 |
| AWS 認定 ソリューションアーキテクト – アソシエイト | SAA-C02 | 15,000 |中 |
| AWS 認定 SysOps アドミニストレーター – アソシエイト | SOA-C01 | 15,000 |中

元記事を表示

複数のAWS認定アカウントを統合する

* * *
### こんな人にオススメの記事です
* 複数のAWS認定アカウントをマージしたい人
* 会社が変わってメールアドレスを変更したい人
* メールアドレスが単純に変更になった人
* * *

結論からいうとAWS認定アカウントを統合する方法は、AWSサポートから
リクエストを送る必要があります。
手順を以下に紹介します。

①. 下記URLからAWSの認定チームへ問い合わせを行います。
https://aws.amazon.com/jp/contact-us/aws-training/

個人情報を記載の上、
問い合わせの本文は英語にて問い合わせした方がよいです。
簡単な英語でよりので翻訳機能を使って送ってしまいましょう。
(私も他のサイトを参考に以下のように送りました。)
![認定アカウント.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1493529/50bfb1e0-baed-0645-69bc-9bb97ab7262d.png)

“`
I want to migrate my A

元記事を表示

AWS

#AWS(アマゾンウェブサービス)について
AWSとは

:::note
クラウドコンピューティングを使ったクラウドサービスのこと
:::
<クラウドコンピューティングとは>

+ サーバー、データベース、ソフトウェア、ストレージなど、インターネット経由で利用できるクラウドサービスのこと。
+ WEBサービス、WEBサイトの構築、運用ができる。(Amazon EC2、Amazon Lightsail)
+ データのバックアップ、災害対策。(Amazon S3)。
+ 基幹、業務システムの構築
+ 統合開発環境の構築(Amazon Cloud9)
+ 200以上のサービスをクラウド上で管理できる。

##AWSにおけるアカウントとユーザーの違い
❶アカウント→入居場所みたいなもの
❷ユーザー→使う人?

##rootユーザーとIAMユーザーの違い
rootユーザー↓

:::note
AWSアカウント作成時に使用したEメールアドレス、パスワードを使用してサインインすることができるアカウントのこと。
:::

:::note alert
rootユーザーは、アカウントのすべてのAWSサービ

元記事を表示

OTHERカテゴリの最新記事