- 0.0.1. Minioを用いてAWSアカウントなしでS3接続(javaSDK)を確認する方法
- 0.0.2. awsをterraformで構築するには(基本編)
- 0.0.3. VPC-S3の環境で、不正なデータ送信をAlarmする環境を、CloudFormationで構築する
- 0.0.4. AWS Step Functions で AWS Batch のステートマシンを作成する
- 0.0.5. Databricksの利用料金データを使って分析してみた
- 0.0.6. Lambdaでec2自動起動停止
- 0.0.7. AWS Batch でゲノムマッピングをしてみる
- 0.0.8. AWS ToolKit For Eclipseを利用してDynamoDBのテーブルを作成するハンズオン
- 0.0.9. AWS SysOps アドミニストレーター試験に合格したぞ!(SOA-C02)
- 0.0.10. AWS Systems Manager Session Maneger(SSM)を使ったRDSへの接続
- 0.0.11. SAM, Step Functions ハンズオン
- 0.0.12. re:Invent 2021 サーバレス関連の新サービス、アップデートまとめ
- 0.0.13. Amazon Lightsailのオブジェクトストレージバケットにユーザー画像を保存する
- 0.0.14. Fargateでの本番と開発環境のCI/CD構成
- 0.0.15. AWS EC2(Amazon Linux2)でFTPサーバを構築する
- 0.0.16. 【AWS】CloudFormationのドリフト検出を通知
- 0.0.17. AWSのクラウドコンピューティングについて
- 0.1. 最初に
- 0.2. AWSとは
- 0.3. クラウドコンピューティングの利点
- 1. [不正利用発生から解決まで]
Minioを用いてAWSアカウントなしでS3接続(javaSDK)を確認する方法
#概要
この記事では、AWSのアカウントなしでもAWS S3 接続を確認できる方法を記事にしてみました。
Minio自体は、AWS S3 と互換性があるマルチクラウドオブジェクトストレージのOSSとして知られています。
現場の業務上 S3 に対してJavaを用いて接続する必要があり自宅で無料で接続確認がしたくてminioを採用しました。
使用方法をwebで調べたのですが、出てくるのはdockerを用いて簡単に構築することができることやMinioが提供しているライブラリを用いて接続する方法しかなく、AWS SDKで接続する方法が見つからなかったので今回挑戦し成功したので記事にしてみました。minioって何?っていう方は以下の記事や公式のサイトを見ると理解できると思います。
https://min.io/
https://dev.classmethod.jp/articles/s3-compatible-storage-minio/aws s3って何?という方は以下の記事や公式のサイトを見ると理解できると思います。
https://aws.amazon.com/jp/s3/
htt
awsをterraformで構築するには(基本編)
#プロバイダーを決める
“`
terraform {
required_version = “>= 1.0.1”
required_providers {
aws = “>= 3.0”
}
}provider “aws” {
access_key = var.aws_access_key
secret_key = var.aws_secret_key
region = var.aws_region
}
“`#変数定義
terraform.tfvarsにて“`
aws_access_key=”xxxxxxxx”
aws_secret_key=”xxxxxxxx”
aws_region=”xxxxxxxx”
“`variables.tfの中で
“`
variable “aws_access_key” {
type = string
}variable “aws_secret_key” {
type = string
}variable “aws_region” {
type = string
VPC-S3の環境で、不正なデータ送信をAlarmする環境を、CloudFormationで構築する
# はじめに
以前作成した、[VPCの内部から不正なデータ送信のアラームを送信する環境](https://qiita.com/a_b_/items/e7d0d60d356355dcf5b5)と、[S3の不正アクセスを検出する環境](https://qiita.com/a_b_/items/2d2c6de3c4c7353c4dca)を、一つにしたCloudFormationを作成しました。# 構成
今回も、複数の環境を想定して、「共通で使うリソース」と「個別の環境で使うリソース」で分けて作成しました。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/11a360b7-ebf5-401d-5b96-0696f1d5a551.png)
以前と少し異なる点は、VPCとCloudTrailにアタッチさせるIAMロール(CloudWatch Logs出力権限)を共通にしました。
それ以外のリソース等は、以前([VPC](https://qiita.com/a_b_/items/e
AWS Step Functions で AWS Batch のステートマシンを作成する
# ステートマシンの作成
まずステートマシンの `Type` フィールドですが、 `Task` を指定します。これはステートマシンが他の AWS リソースを呼び出すときに使用します。
“`json
“Type”: “Task”
“`次に `Resource` フィールドですが、Batch 用には次の ARN が用意されています。
`arn:aws:states:::batch:submitJob`
さらにサフィックスに `.sync` を付与すると、ステートマシンは実行完了まで待機します。
> リクエストの完了まで待機してから、次の状態に進むことができます。Step Functions を待機させるには、”Resource”フィールドを使用して、タスク状態定義の.syncサフィックスをリソース URI の後に付加します。
詳しくはこちらを参照してください。
https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/connect-to-resource.html#connect-sync
上記を踏まえ、
Databricksの利用料金データを使って分析してみた
# はじめに
AWS Databricksの使用料を確認した際に、UI上だけでは細かい分析ができなかったので詳細データを取得して分析してみましたので、その方法をご紹介したいと思います。
# 使用料や利用料金を確認するには?
AzureとAWS/GCPで確認の仕方は異なります。Azureの場合はAzure Serviceに組み込まれているため、Azure Portalから確認することが可能です。AWS/GCPは Databricks Account Console上から確認することができます。今回はAWS/GCPのケースにフォーカスしております。
**Databricks Account Console** -> **[Usage]**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2206424/a478a2d0-8729-ed5c-7bb0-604bca7e5ea3.png)上図のように、Workspace毎やSKU毎に使用量(DBU)や料金($)を確認できます。日付指
Lambdaでec2自動起動停止
#自動起動
#iam role作成
AWSコンソールへログイン
https://console.aws.amazon.com/iamv2
左ペインロール押下
ロールを作成押下
一般的なユースケース:lambda
ポリシー:AmazonEC2FullAccess
ロール名:control-ec2
作成#lambda関数作成
https://console.aws.amazon.com/lambda
関数の作成押下
関数名:start-ec2
ランタイム:python3.9
デフォルトの実行ロールの変更
既存のロールを使用する:control-ec2
関数の作成
以下コード入れる“`
import boto3
region = ‘ap-northeast-1’
instances = []
instances.append(‘対象インスタンスID1’)
instances.append(‘対象インスタンスID2’)ec2 = boto3.client(‘ec2’, region_name=region)
def lambda_handler(event, context):
AWS Batch でゲノムマッピングをしてみる
# 初めに
BWA を Centos イメージにインストールして簡単に AWS Batch で動かしてみます。リファレンスファイルや FASTQ ファイルは S3 バケットに保存しておき、Batch ジョブでダウンロードします。
# Docker イメージの作成
Centos イメージに BWA、AWS CLI v2 をインストールするイメージを作成します。
“`Dockerfile:Dockerfile
FROM centosRUN yum install -y git make gcc zlib-devel unzip \
&& git clone https://github.com/lh3/bwa.git \
&& cd bwa \
&& make \
&& cp bwa *.pl /usr/bin \
&& curl “https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip” -o “awscliv2.zip” \
&& unzip awscliv2.zip \
&& ./aws/insta
AWS ToolKit For Eclipseを利用してDynamoDBのテーブルを作成するハンズオン
# もくじ
①IAMユーザの作成+ロールの作成
②EclipseマーケットプレイスでAWS ToolKit For Eclipseをインストール
③プロジェクトを作成してjar実行
④おわりに# ①IAMユーザの作成+ロールの作成
ロールにAmazonDynamoDBFullAccessを付けておけばいいのかなと思います。(雑な権限付与ですみません。)
CSVファイル「new_user_credentials .csv」を保存しておきます。# ②EclipseマーケットプレイスでAWS ToolKit For Eclipseをインストール
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411902/2eaf5824-72db-07c7-bd74-e34cbc0ce761.png)こちらをインストールします。
「何をインストールするか?」を聞かれるので、必要に応じて選択してインストールするといいと思います。ここでCredential情報を聴かれるので、CSVファイル内
AWS SysOps アドミニストレーター試験に合格したぞ!(SOA-C02)
# はじめに
2021年の7月からAWSの勉強を始め、 CLFとSAAをそれぞれ下記の通り取得してます。
•CLF :2021年 8月
•SAA :2021年 11月
AWS SysOps アドミニストレーター試験は2022年の1月に受験し、725点でギリギリ合格しました。
この記事はSOA試験の備忘録となります。# 目次
1. [取り組んだこと](#取り組んだこと)
1. [問題](#問題)
1. [試験ラボ](#試験ラボ)###①Wizlabs(AWS Certified SysOps Administrator Associate)
https://www.whizlabs.com/aws-sysops-administrator-associate/海外のUdemyのようなサイトです。
すべて英語で記載されてますので、Google翻訳を用いて勉強しました。問題は比較的基礎的な内容が多いと思ってます
AWS Systems Manager Session Maneger(SSM)を使ったRDSへの接続
# はじめに
– 本記事では、プライベートサブネットに置いたRDSへのAWS Systems Manager Session Maneger(以降SSM)を使ったローカルからの接続方法について、備忘録も兼ねて書いていく。
– これまでは、プライベートサブネットに置いてあるRDSへ接続するには、EC2を踏み台にしてSSHポートフォワーディングを行う必要があり、そのためにはEC2をパブリックサブネットに置き、SSH用のポートも開ける必要があった。
– しかし、SSMを使えば、EC2をプライベートサブネットに置き、SSH用のポートを開けることもなく、EC2にローカルから接続できるようになり、セキュリティリスクも軽減させられるようになった。# 実行環境について
– Windowsで実行。# 作成手順
## RDS作成
– プライベートサブネットにRDSを作成。
– 作成方法については本記事では省略するが、気を付けるポイントを下記に書いておく。
– RDSに付与するセキュリティーグループの設定。
– インバウンドルールに、EC2に付与するセキュリティーグループから
SAM, Step Functions ハンズオン
# 背景
会社の上司から Step Functions の学習をお勧めされたので、学習してみる。
# 参考記事
下記記事を見ながら取り組んでみる。
https://dev.classmethod.jp/articles/aws-sam-step-functions/
AWS SAM とは:
> AWS Serverless Application Model(以下、AWS SAM)は、サーバーレスアプリケーションのデプロイに特化した、CloudFormation(以下、CFn)の拡張機能です。
# 準備
AWS SAM CLI をインストールする。
https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html
(ついでに、これまで作っていなかった、管理者権限を持つユーザーを作成した。)
(また、シークレットアクセスキーも新調する。)しばらく Homebrew を使っていなかったので、関連プログ
re:Invent 2021 サーバレス関連の新サービス、アップデートまとめ
re:Invent2021で発表されたサーバレス関連サービスのアップデートをまとめてみました。
1/8 20:00 から [JAWS-UG横浜 #40 AWS re:Invent 2021 Recap Serverless](https://jawsug-yokohama.connpass.com/event/233901/) でこのあたりをキャッチアップしますので是非ご参加ください!
## AWS Amplify Studio
https://aws.amazon.com/jp/blogs/news/aws-amplify-studio-figma-to-fullstack-react-app-with-minimal-programming/– Amplifyの強力なバックエンドとの統合・管理機能を持ち、最小限のコーディングでUI開発を加速
– Figmaで作成されたデザインを人間が読めるReactのコンポーネントコードに自動的に変換
– 開発者が生成されたコンポーネントをアプリのバックエンドデータに視覚的に接続可能## Amazon Redshift Serve
Amazon Lightsailのオブジェクトストレージバケットにユーザー画像を保存する
## やりたいこと
Railsでフランス語のWebアプリを個人開発してます。
developmentではS3で画像を保存していたのですが、本番デプロイするにあたり、Lightsailでアプリを運用することにしたのでLightsailのオブジェクトストレージを使うことにしました。12ヶ月無料だって。やったー!
![Capture d’écran 2022-01-08 à 16.46.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645077/2ae5d000-4007-a379-799a-266b2f8ee56e.png)元々のS3での実装がどうなってたのか、記憶から消えていたのでこの辺を読んで復習するところから始まりました。
https://railsguides.jp/active_storage_overview.html
関連する該当箇所は以下な感じです。
“`ruby:Gemfile
gem ‘image_processing’, ‘~> 1.2’
“`“`ru
Fargateでの本番と開発環境のCI/CD構成
#はじめに
FargateでwordPressの本番環境を構築後、開発環境を作成する上で、Cl/CD構成について試行錯誤したため、まとめます。#FargateでWordPressの構築方法
こちらの記事を順番どおり行うと、本番環境として構築できます。https://qiita.com/holdout0521/items/bde67b8334f3362c8009
https://qiita.com/holdout0521/items/2a199770cf14b6289bca
https://qiita.com/holdout0521/items/b83f931e16e680e46391
https://qiita.com/holdout0521/items/3aeeb9c9f9e663778ed7
#本番と開発環境のCI/CDの構成の要件
1. アプリケーションの品質を担保する観点から、開発環境でビルド・デプロイテストを行い、問題ないことを確認して、本番環境にデプロイしたい
→そのために、各環境にCodePipelineを構築する
1. 開発効率の点から本番と開発
AWS EC2(Amazon Linux2)でFTPサーバを構築する
今回はさくっとAWS EC2でFTPサーバお試し構築してみます。EC2は同一サブネットに2つデプロイして、1つをFTPサーバ、もう1つをクライアントとして設定し、FTPでファイル送受信を行う設定になります。
#前提
– 利用するインスタンスはFTPサーバはAmazon Linux2で、クライアント側はWindows Serverとし、FTPソフトウェアはWinSCPとする
– コマンド操作はRoot権限のあるユーザで実施する#構築手順
①EC2をサーバ、クライアント用でそれぞれデプロイ
②サーバ側にvsftpdをインストールして、FTPユーザを作成
③vsftpdの設定ファイルをデフォルトから変更
④クライアント側でWinSCPをインストールし、接続#実際にやってみた
まず①についてはほ他に詳しい記事がたくさんあるので割愛します。EC2をデプロイしてRoot権限のユーザに昇格したものとして以下進めます。
次の②のvfstpdのインストールですが以下でインストールします。#サーバ側にvsftpdをインストール
yum -y install vsftpd
【AWS】CloudFormationのドリフト検出を通知
#はじめに
CloudFormationで作成したスタック内のリソースを直接設定変更すると、テンプレートで定義された設定内容と実際のリソースの設定内容に差分(以下、「ドリフト」と記述)が生じます。
ドリフトが発生することにより、スタックの更新や削除の際に問題が生じる可能性があります。https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html
今回は「ドリフト検出」の機能を使用して、発生したドリフトの内容の確認やドリフトの解消を実施してみたいと思います。
また、定期的なドリフト検出とSlackへの通知も併せて構成していきます。#構成図
定期的なドリフト検出とSlackへの通知のためにCloudFormation以外に以下のサービスを使用します。
※ドリフト検出を実行するのみであれば不要です。* AWS Config
* Amazon EventBridge
* Amazon SNS
* AWS Chatbot![diagram02.png]
AWSのクラウドコンピューティングについて
最初に
この記事はAWS認定試験を目指す学生のノートの1ページです。
間違いや言葉の言い回しが多少異なることがあります。ご了承くださいAWSとは
AWS(Amazon Web Services)とはAmazon社が提供している
従量課金制(使用した分しか取らない)Webサービスです。
またAWSでは様々なビジネスの場面で使えるようにたくさんの製品が用意されているのも一つの特徴です。クラウドコンピューティングの利点
クラウドコンピューティングの利点は大きく分けて6つあります
・先行支出を変動支出に切り替えれる
使用するかどうかわからない膨大な量ではなく使用した分だけ料金を払うので結果的に費用が安くなる
・データセンターの維持管理費用が不要
データセンターのコンピューティングで必要なインフラストラクチャとサーバー管理に割く多くの時間と費用をカットできる
・キャパの予測がいらない
クラウドコンピュー
AWSを不正利用された話 | 返金対応まで
先日、AWSにてアカウントが乗っ取られ、高額請求されました。
当時はかなり不安でしたが、サポートのおかげで無事解決することができました。
今回は解決までの行動・カスタマーサービスの対応を時系列で書きたいと思います。
同じ境遇の方は少しでも参考になれば幸いです。※当方はAWS初心者のため、この記事は初心者向けとなります。
[不正利用発生から解決まで]
12月7日:事件発生
AWSから1346ドルの請求(およそ16万円)が届く。
原因を確認したところ、高容量のインスタンスが複数作成されていた。(身に覚えが無い)
作成元をCloudTrail(アカウントのアクセス日時・元を特定できる)で調べると、アメリカから不正にアクセスされていることが発覚。すぐに該当アカウントの停止を行った。
その後、Ruby 2.5.0コンテナでRails6の開発環境を作るときのトラブルシューティングこちらのハンズオンをやっていたところ、いくつかの問題に遭遇したので備忘録。
[Rails アプリケーションをコンテナで開発しよう ! 第 1 回 – まずは Rails アプリケーション作りから](https://aws.amazon.com/jp/builders-flash/202009/container-rails-app/?awsf.filter-name=*all)
## Rails7のインストールに失敗する
記事では Ruby2.5 & Rails6 を使用しているが、現時点(2022/1)での最新版は `7.0.1`。
エラーメッセージにもあるように`7.0.1` ではRuby2.7以上が必要であるため `gem install rails`に失敗する。“`bash
root@810c33297af8:/work# gem install rails
Fetching: concurrent-ruby-1.1.9.gem (100%)
Successfully installed concurrent-ruby-1.1.9
Fetching: i18n-
最小限のIAM権限でAWS上にRayクラスターを立ち上げ
# 背景/目的
– Admin権限をもったIAMユーザを使ってRayクラスターを立ち上げるのがシンプルだがセキュリティ的によろしくない
– 最小限の権限でRayクラスターを立ち上げたい
– 権限を絞ってIAMユーザ/ロールを作り、Rayクラスターを起動する# 参考
下記を参考にしながらトライする。https://github.com/ray-project/ray/issues/9327
https://github.com/ray-project/ray/blob/master/python/ray/autoscaler/aws/example-full.yaml
# 概要
最小限の権限をもったユーザとロールを作成する。ロールをもとにインスタンスプロファイルを作成し、インスタンスプロファイルのARN(Amazon Resource Name)をRayクラスター起動用コンフィグファイルで参照してヘッドノードとワーカノードに最小限の権限を割り当てるようにする。コンフィグファイルをもとにRayクラスターを起動する。# 手順
## 1. IAM Policy/Role/IA