• 日本語
    • English (英語)
Avintonジャパン株式会社Avintonジャパン株式会社Avintonジャパン株式会社Avintonジャパン株式会社
  • サービス
    • Avinton Data Platform
    • エッジAIカメラ
    • プライベートクラウド
    • AIサービス開発
    • AI画像解析 – 無償PoC
  • 最新情報
    • ニュースリリース&イベント情報
    • 技術ブログ&インタビュー
  • アカデミー
    • Avintonアカデミー
    • Academy on Campus
  • 採用情報
    • Avintonで働く魅力
    • 新卒採用
    • プロジェクトコーディネーター職紹介
    • 求人
    • よくある質問
  • 企業情報
    • 会社概要
    • 代表からご挨拶
    • SDGsへの貢献
  • お問い合わせ

AWS CLIを使ってEC2のファイルをS3へアップロードしよう

  • Python3.8 と OpenCV のインストール (Ubuntu20.04LTS)
  • ルーティング
  • postgreSQLへのshp fileのimport
  • NAT
  • PostGIS exercise
  • 三目並べ – 2.〇×を交互にゲーム盤に入るようにしよう
  • Docker 概要とセットアップ
  • 三目並べ – 3.勝敗がつくようにしよう
  • Docker Engineのubuntu上へのinstall
  • EC2からS3へ自動でぽいぽいアップロードするスクリプトの作成
  • 三目並べ – 4.「スタート」「リセット」ボタンをつけよう
  • 三目並べ – 5.先攻後攻を決めて、コンピュータ対戦にしよう(前編)
  • Apache Zeppelin 基本機能
  • Ruby on Rails を MySQLでセットアップ
  • 機械学習入門者向け Support Vector Machine (SVM) に触れてみる
  • AWSアカウントの作成と必ずやるべきセキュリティ対策
  • Scala 基礎
  • VLAN
  • Apache Spark 基礎
  • 機械学習を用いた画像分類
  • Ruby on Railsによる簡単なウェブアプリケーション
  • 正規表現とパイプ
  • 機械学習エンジニアに必要なスキル
  • Docker, Kubernetesの学び方について
  • Ubuntuの基本設定
  • PostgreSQL Setup
  • REDIS
  • Amazon EC2 インスタンスの初期設定をしよう
  • 軽量版Kubernetesディストリビューション – k0s クラスターの構築
  • Pythonの設定
  • GNS3のセットアップ
  • viエディタ
  • AWSのEC2インスタンスでWordPressブログを公開してみよう
  • Pythonでデータベースを操作する
  • Python2.7とOpenCVのインストール
  • ファイル操作コマンド
  • OpenCVのテストプログラム
  • グループとユーザー
  • Pythonで画像を分類するプログラムを作成する
  • AWS CLIをインストールしてコマンド操作しよう
  • Virtualisation and Container (仮想化とコンテナ) – Ansible, Docker and Kubernetes
  • Windows Server 2012 R2 Hyper-V
  • 困った時に使うコマンド
  • SparkMLによるKaggle Titanic生存者予測
  • PacketTracerのセットアップ
  • 一般グループのユーザーとグループ
  • AWS Route 53を使って独自ドメインのWebページを表示させてみよう
  • Kubernetesクラスター上へのOpenVINOモデルサーバーを使用したサンプルアプリケーションのデプロイ
  • プライバシーポリシー
  • VMware ESXi サーバー構築
  • 三目並べ – 6.先攻後攻を決めて、コンピュータ対戦にしよう(後編)
  • フロントエンド開発のための環境構築
  • フロントエンドのデモンストレーション
  • APIのデモンストレーション
  • CISCO 1800ルータセットアップ
  • ファイル検索コマンド
  • ESXi – Switchの追加とVLAN
  • 質問
  • 仮想化環境のディスク容量を拡張する
  • ユーザー権限とアクセス権
  • 三目並べ – 0.導入
  • テキスト処理
  • ESXi – VyOS
  • データベースへのデータロード
  • 機械学習入門者向け Naive Bayes(単純ベイズ)アルゴリズムに触れてみる
  • CCNA
  • ESXi – 小規模ネットワーク 構築
  • ファイル管理
  • 機械学習入門者向け ChainerRLでブロック崩しの学習
  • AWS CLIを使ってEC2のファイルをS3へアップロードしよう
  • Apache NiFiの環境設定
  • CSV import & export – Node.js, mySQL – 1
  • 機械学習入門者向け ランダムフォレストによる Kaggle Titanic生存者予測
  • NodeJSでWebアプリケーション開発 – Socket.IO編
  • CSV import & export – Node.js, mySQL – 2
  • Apache NiFi データパイプライン基礎
  • PCからルータ、スイッチへのSSH接続設定
  • 【Python入門】Python Numpy チュートリアル
  • SQL 便利な関数
  • PostgreSQLによるデータ分析
  • Apache NiFi Exercise
  • 機械学習入門者向け 分類と回帰の違いをプログラムを書いて学ぼう
  • NodeJSでWebアプリケーション開発 – React編
  • Pythonによるマルチスレッドプログラミング実践
  • Apache SparkとApache Zeppelinの概要と環境構築
  • Certbotを使ってSSL証明書を発行し、HTTP通信を暗号化しよう
  • DockerとApacheを使ってWebサーバーを構築しよう
  • NodeJSでWebアプリケーション開発 – React編
  • Redux基礎 – 主要な概念と用語
  • AmazonEC2とVPCでネットワークとサーバーを構築しよう
  • AWS入門者向け 初心者が最初に理解すべきEC2とVPCの基本的な用語解説
  • Linuxとは
  • Pandasによる構造化データ分析
  • ダイナミックルーティング
  • PostgreSQL – Python – Apache – Bootstrap
  • 三目並べ – 1.ゲーム盤を作ろう
Home Avintonアカデミー AWS CLIを使ってEC2のファイルをS3へアップロードしよう

AWS CLIを使ってEC2のファイルをS3へアップロードしよう

Amazon S3はAWSにおけるオンラインのストレージサービスです。

Google DriveやDropboxのようなツールをイメージすると分かりやすいでしょう。

今回はS3のバケットの作成とAWS CLIを使ってファイルのアップロードを試してみましょう。

S3の特徴

頑丈そうに見える保管庫

2018年3月現在、S3は無料枠が5GBに制限されており、他のストレージサービスと比較すると少し割高に感じられます。

しかしAWSサービスとの連携が容易で、AWS CLIを組み合わせて自動化すればスマートな管理ができます。

加えて 99.999999999% という高い耐久性を維持しており、どこからでも安全にデータを保管できる強力なストレージです。

主な使い方としては次ケースが挙げられます。

1.サイズが大きいメディアファイル、EC2やサーバーで記録したログや分析データの保管

2.データのバックアップストレージとしての利用

3.静的なWebサイトやメディアコンテンツの配信

1.サイズが大きいメディアファイルの配信、EC2やサーバーで記録したログや分析データの保管

メディアファイルはサイズが大きいため、メインのサーバーと分けることでサーバーの容量不足対策となります。また、 回線が高速なのでコンテンツの配信に向いています。 WordPressで公開する記事内の画像ファイルなどをS3に保管することで、メインサーバーの負荷を減らしつつ高速にコンテンツを提供できます。

ログは長期間記録すると無視できない大きさになることが稀にありますし、サーバーへ入らずにS3からログをダウンロードできれば、 誤ったコマンド操作で貴重なファイルを削除するリスクも無くせます。

2.データのバックアップストレージとしての利用

Google Driveと同様に、 ファイルのバックアップや共有 目的に利用できます。

3.静的なWebサイトやメディアコンテンツの配信

GitHub pages や GitLab pages のように、 静的なWebサービスの公開に利用できます。

HTML/CSS, JavaScriptなどの静的なプログラミング言語のみで作成されたWebページであれば、EC2よりも低コストで運営が可能です。

さらに独自ドメインやSSL証明書の割り当てができ、S3だけで静的なWebサイトの全てをこなすことができます。

S3のバケット作成

それではさっそくS3を利用しましょう。

S3ではバケットと呼ばれるオブジェクト(ディレクトリのようなもの)を作成し、その中にファイルを保管します。

1.S3のダッシュボードを開き、バケットの作成をクリックします。

S3バケットの作成手順を説明する画像1

2.バケットの名前とリージョンを設定します。EC2とS3を連携させたいため、EC2インスタンスが置かれているリージョンを選んでください。既存のバケットがあればその設定を引き継ぐことができますが、今回は初めてなので空欄のまま次へ進みます。

S3バケットの作成手順を説明する画像2

3.バケットのプロパティを設定します。通信の暗号化やバージョン管理を有効にするなど、便利なプロパティがあるので必要に応じて適用します。この設定は後から追加することができるため、何もせずに次へ進んでも大丈夫です。

S3バケットの作成手順を説明する画像3

4.パーミッションの設定をします。読み込みと書き込みの許可をアカウントごとに設定することができます。また、今回はバックアップ目的での利用のため、 バケットの公開をしないよう設定してください。

S3バケットの作成手順を説明する画像4

5.設定内容を確認して作成ボタンをクリックします。

S3バケットの作成手順を説明する画像5

作成されたバケットはダッシュボードに表示されます。
S3バケットの作成手順を説明する画像6

VPCエンドポイントの設定

今回はEC2とS3の間でファイルの転送を行いたいのですが、S3はEC2が設置されているネットワーク(VPC)の外側にあるサービスです。

そこで、エンドポイントと呼ばれるコンポーネントをVPCにアタッチして、S3との通信ができるように設定する必要があります。

これまでの記事で構築したインフラにエンドポイントをアタッチすると、次のようなイメージになります。

Avinton Academyで構築してきたインフラのイメージ図

S3との通信はインターネットゲートウェイ経由でも可能ですが、その場合はトラフィックが一度インターネットへ出てしまいます。VPCエンドポイントを使えば、AWSのサービス内でセキュアにトラフィックを流すことができ、通信料金もかからないので経済的です。

VPCエンドポイントを使わない時のS3-EC2間の通信経路

VPCエンドポイントの作り方

1.VPCのダッシュボードを開き、 エンドポイント の作成ボタンをクリックします。

VPCエンドポイントの作成方法を説明する画像01

2.宛先の選択をします。 AWS services と com.amazonaws.ap-northeast-1.s3 にチェックを入れます。

VPCエンドポイントの作成方法を説明する画像02

3.通信したいEC2インスタンスが置かれているVPC と そのサブネットに当てられているルートテーブル を選択します。エンドポイント作成時に一度通信が遮断されるので、インスタンスで何か通信を行なっている場合は、それが終わってから作成すると良いでしょう。

VPCエンドポイントの作成方法を説明する画像03

4.ポリシーの設定をします。デフォルトでは全ての操作を許可するポリシーがセットされていますが、このようなポリシーはセキュリティホールの原因となるので、必要最小限のポリシーに絞ります。作成したS3のバケットに対してのみ操作可能なポリシーを作成しましょう。

VPCエンドポイントの作成方法を説明する画像04

ポリシーの例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"Version": "2012-10-17",
"Id": "Policyxxxxxxxxxxxxx",
"Statement": [
{
"Sid": "Access-to-S3",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::YOUR-S3-BUCKET-NAME",
"arn:aws:s3:::YOUR-S3-BUCKET-NAME/*"
]
}
]
}

作成が完了すると、ダッシュボードにエンドポイントが表示されます。

VPCエンドポイントの作成方法を説明する画像05

紐付けたサブネットのルートテーブルを確認すると、エンドポイントを介したS3への経路が追加されています。

VPCエンドポイントの作成方法を説明する画像06

AWS CLIを使ってS3へデータを送信してみる

それではEC2インスタンスからS3のバケットへアクセスできるか見ていきましょう。

インスタンスへsshしてください。

1
ssh -i "~/.ssh/HOGEHOGE" -p xxxxx USER@FQDN

~

試しにゴミファイルを作成し、バケットへ放り込みます。

1
2
3
touch gomi
aws s3 mv gomi s3://YOUR_S3_BUCKET/gomigomi
aws s3 ls s3://YOUR_S3_BUCKET/

AWS CLIを使ってS3のバケットへデータを送信した結果

アップロードできました!やったね!

演習

helpコマンドで aws s3 コマンドを調べてください。どのようなことが出来るでしょうか。気になったコマンドを試してみましょう。

1
aws s3 help

まとめ

S3のバケット作成、VPCエンドポイントによるEC2-S3間の経路追加、そしてEC2からバケットへファイルのアップロードを行いました。

次回はAWS CLIとシェルスクリプト、そしてCrontab、3つの技術を駆使してコンテナの自動バックアップシステムを作ります。
>>EC2からS3へ自動でぽいぽいアップロードするスクリプトの作成

あなたも、Avintonでこのような最先端技術を習得し活用してみませんか?

社員の成長を導きながら、AIやビッグデータなどの最先端技術をプロジェクトに活用していくことが私たちのビジョンです。Avintonの充実した技術研修でスキルアップを図り、あなたのキャリア目標を一緒に達成しませんか?

採用情報

採用情報

採用情報

Avinton SDGs

SDGsへの貢献

Search

タグ

AI AI Big Data Big Data ccna Digital Transformation DX IoT IoT LPIC Python Ruby SDGs Webエンジニア イベント インタビュー インフラエンジニア エンジニア オンラインセミナー キャリアチェンジ コンテナ技術 サーバーエンジニア システム開発 データサイエンス データベース データ分析 データ解析 ネットワークエンジニア ビックデータ 人工知能 仮想化 勉強会 営業 就職活動 技術インターン 採用 新卒 新卒採用 新規事業 機械学習 派遣 深層学習 社員インタビュー 経営者交流会 転職
© 2022 Avinton | All Rights Reserved | プライバシーポリシー
  • サービス
    • Avinton Data Platform
    • エッジAIカメラ
    • プライベートクラウド
    • AIサービス開発
    • AI画像解析 – 無償PoC
  • 最新情報
    • ニュースリリース&イベント情報
    • 技術ブログ&インタビュー
  • アカデミー
    • Avintonアカデミー
    • Academy on Campus
  • 採用情報
    • Avintonで働く魅力
    • 新卒採用
    • プロジェクトコーディネーター職紹介
    • 求人
    • よくある質問
  • 企業情報
    • 会社概要
    • 代表からご挨拶
    • SDGsへの貢献
  • お問い合わせ
  • 日本語
    • English (英語)
Avintonジャパン株式会社